[opensuse-kernel] [PATCH] config: arm64 switch from PREEMPT_NONE to PREEMPT
Also enable CEC_GPIO=m which is now available (depends on PREEMPT) Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr> Cc: Andreas Färber <afaerber@suse.de> Cc: Alexander Graf <agraf@suse.de> --- This patch applies to master and stable branches config/arm64/default | 64 +++++++------------------------------------- 1 file changed, 9 insertions(+), 55 deletions(-) diff --git a/config/arm64/default b/config/arm64/default index 5db170532d..31cc78ae9b 100644 --- a/config/arm64/default +++ b/config/arm64/default @@ -73,9 +73,10 @@ CONFIG_NO_HZ_IDLE=y # CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y -CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y # # CPU/Task time and stats accounting @@ -96,7 +97,7 @@ CONFIG_CPU_ISOLATION=y # # RCU Subsystem # -CONFIG_TREE_RCU=y +CONFIG_PREEMPT_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y @@ -879,57 +880,7 @@ CONFIG_BFQ_GROUP_IOSCHED=y CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y -CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y -CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_LOCK=y -CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y -CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y -CONFIG_ARCH_INLINE_READ_LOCK=y -CONFIG_ARCH_INLINE_READ_LOCK_BH=y -CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y -CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_READ_UNLOCK=y -CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y -CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y -CONFIG_ARCH_INLINE_WRITE_LOCK=y -CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y -CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y -CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_SPIN_TRYLOCK=y -CONFIG_INLINE_SPIN_TRYLOCK_BH=y -CONFIG_INLINE_SPIN_LOCK=y -CONFIG_INLINE_SPIN_LOCK_BH=y -CONFIG_INLINE_SPIN_LOCK_IRQ=y -CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y -CONFIG_INLINE_SPIN_UNLOCK_BH=y -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_READ_LOCK=y -CONFIG_INLINE_READ_LOCK_BH=y -CONFIG_INLINE_READ_LOCK_IRQ=y -CONFIG_INLINE_READ_LOCK_IRQSAVE=y -CONFIG_INLINE_READ_UNLOCK=y -CONFIG_INLINE_READ_UNLOCK_BH=y -CONFIG_INLINE_READ_UNLOCK_IRQ=y -CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_WRITE_LOCK=y -CONFIG_INLINE_WRITE_LOCK_BH=y -CONFIG_INLINE_WRITE_LOCK_IRQ=y -CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y -CONFIG_INLINE_WRITE_UNLOCK=y -CONFIG_INLINE_WRITE_UNLOCK_BH=y -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y +CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y @@ -5494,6 +5444,7 @@ CONFIG_DVB_PLATFORM_DRIVERS=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_VIDEO_CROS_EC_CEC=m CONFIG_VIDEO_MESON_AO_CEC=m +CONFIG_CEC_GPIO=m CONFIG_VIDEO_SAMSUNG_S5P_CEC=m CONFIG_VIDEO_TEGRA_HDMI_CEC=m CONFIG_SDR_PLATFORM_DRIVERS=y @@ -9616,6 +9567,7 @@ CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y CONFIG_SCHED_STACK_END_CHECK=y # CONFIG_DEBUG_TIMEKEEPING is not set +# CONFIG_DEBUG_PREEMPT is not set # # Lock Debugging (spinlocks, mutexes, etc...) @@ -9692,8 +9644,10 @@ CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y CONFIG_FUNCTION_TRACER=y CONFIG_FUNCTION_GRAPH_TRACER=y +CONFIG_TRACE_PREEMPT_TOGGLE=y CONFIG_PREEMPTIRQ_EVENTS=y # CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set CONFIG_SCHED_TRACER=y # CONFIG_HWLAT_TRACER is not set CONFIG_FTRACE_SYSCALLS=y -- 2.20.1 -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
On 09.01.19 09:18, Guillaume GARDET wrote:
Also enable CEC_GPIO=m which is now available (depends on PREEMPT)
Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr>
This patch is missing a rationale, such as "... to get it in sync with x86" or so. Alex -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
as we need to have low latency on some systems. It also aligns to default arm64 kernel config. Also enable CEC_GPIO=m which is now available (depends on PREEMPT) Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr> Cc: Andreas Färber <afaerber@suse.de> Cc: Alexander Graf <agraf@suse.de> --- Update in V2: Only comments update to add a rational This patch applies to master and stable branches config/arm64/default | 64 +++++++------------------------------------- 1 file changed, 9 insertions(+), 55 deletions(-) diff --git a/config/arm64/default b/config/arm64/default index 5db170532d..31cc78ae9b 100644 --- a/config/arm64/default +++ b/config/arm64/default @@ -73,9 +73,10 @@ CONFIG_NO_HZ_IDLE=y # CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y -CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y # # CPU/Task time and stats accounting @@ -96,7 +97,7 @@ CONFIG_CPU_ISOLATION=y # # RCU Subsystem # -CONFIG_TREE_RCU=y +CONFIG_PREEMPT_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y @@ -879,57 +880,7 @@ CONFIG_BFQ_GROUP_IOSCHED=y CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y -CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y -CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_LOCK=y -CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y -CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y -CONFIG_ARCH_INLINE_READ_LOCK=y -CONFIG_ARCH_INLINE_READ_LOCK_BH=y -CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y -CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_READ_UNLOCK=y -CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y -CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y -CONFIG_ARCH_INLINE_WRITE_LOCK=y -CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y -CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y -CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_SPIN_TRYLOCK=y -CONFIG_INLINE_SPIN_TRYLOCK_BH=y -CONFIG_INLINE_SPIN_LOCK=y -CONFIG_INLINE_SPIN_LOCK_BH=y -CONFIG_INLINE_SPIN_LOCK_IRQ=y -CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y -CONFIG_INLINE_SPIN_UNLOCK_BH=y -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_READ_LOCK=y -CONFIG_INLINE_READ_LOCK_BH=y -CONFIG_INLINE_READ_LOCK_IRQ=y -CONFIG_INLINE_READ_LOCK_IRQSAVE=y -CONFIG_INLINE_READ_UNLOCK=y -CONFIG_INLINE_READ_UNLOCK_BH=y -CONFIG_INLINE_READ_UNLOCK_IRQ=y -CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_WRITE_LOCK=y -CONFIG_INLINE_WRITE_LOCK_BH=y -CONFIG_INLINE_WRITE_LOCK_IRQ=y -CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y -CONFIG_INLINE_WRITE_UNLOCK=y -CONFIG_INLINE_WRITE_UNLOCK_BH=y -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y +CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y @@ -5494,6 +5444,7 @@ CONFIG_DVB_PLATFORM_DRIVERS=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_VIDEO_CROS_EC_CEC=m CONFIG_VIDEO_MESON_AO_CEC=m +CONFIG_CEC_GPIO=m CONFIG_VIDEO_SAMSUNG_S5P_CEC=m CONFIG_VIDEO_TEGRA_HDMI_CEC=m CONFIG_SDR_PLATFORM_DRIVERS=y @@ -9616,6 +9567,7 @@ CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y CONFIG_SCHED_STACK_END_CHECK=y # CONFIG_DEBUG_TIMEKEEPING is not set +# CONFIG_DEBUG_PREEMPT is not set # # Lock Debugging (spinlocks, mutexes, etc...) @@ -9692,8 +9644,10 @@ CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y CONFIG_FUNCTION_TRACER=y CONFIG_FUNCTION_GRAPH_TRACER=y +CONFIG_TRACE_PREEMPT_TOGGLE=y CONFIG_PREEMPTIRQ_EVENTS=y # CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set CONFIG_SCHED_TRACER=y # CONFIG_HWLAT_TRACER is not set CONFIG_FTRACE_SYSCALLS=y -- 2.20.1 -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
On Thu, 10 Jan 2019 10:50:59 +0100, Guillaume GARDET wrote:
as we need to have low latency on some systems.
Actually, it's an open question whether we still want to keep CONFIG_PREEMPT or not on other archs, too. CONFIG_PREEMPT hits performance significantly. I don't know much about other distros, but IIRC, Fedora is using CONFIG_PREEMPT_VOLUNTARY instead. Ubuntu provide both non-preempt and CONFIG_PREEMPT versions? Correct me if wrong.
It also aligns to default arm64 kernel config.
That's more convincing reason in this case, though :) thanks, Takashi -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
-----Original Message----- From: Takashi Iwai <tiwai@suse.de> Sent: 10 January 2019 11:03 To: Guillaume GARDET <guillaume.gardet@free.fr> Cc: opensuse-kernel@opensuse.org; Andreas Färber <afaerber@suse.de>; Alexander Graf <agraf@suse.de> Subject: Re: [opensuse-kernel] [PATCH V2] config: arm64 switch from PREEMPT_NONE to PREEMPT
On Thu, 10 Jan 2019 10:50:59 +0100, Guillaume GARDET wrote:
as we need to have low latency on some systems.
Actually, it's an open question whether we still want to keep CONFIG_PREEMPT or not on other archs, too. CONFIG_PREEMPT hits performance significantly.
I don't know much about other distros, but IIRC, Fedora is using CONFIG_PREEMPT_VOLUNTARY instead. Ubuntu provide both non- preempt and CONFIG_PREEMPT versions? Correct me if wrong.
True for Fedora. Ubuntu has two flavors: CONFIG_PREEMPT_VOLUNTARY and CONFIG_PREEMPT. Default x86_64 is CONFIG_PREEMPT_VOLUNTARY. So, the question is more switching to CONFIG_PREEMPT or CONFIG_PREEMPT_VOLUNTARY, right?
It also aligns to default arm64 kernel config.
That's more convincing reason in this case, though :)
When in doubt , it is probably a good idea to follow defconfig. @Andreas, any opinion for aarch64 preemption model? Thanks, Guillaume
thanks,
Takashi -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
On Thursday, 10 January 2019 11:02 Takashi Iwai wrote:
On Thu, 10 Jan 2019 10:50:59 +0100, Guillaume GARDET wrote:
as we need to have low latency on some systems.
Actually, it's an open question whether we still want to keep CONFIG_PREEMPT or not on other archs, too. CONFIG_PREEMPT hits performance significantly.
I don't know much about other distros, but IIRC, Fedora is using CONFIG_PREEMPT_VOLUNTARY instead. Ubuntu provide both non-preempt and CONFIG_PREEMPT versions? Correct me if wrong.
We used to have two flavors: -default (with preemption disabled) and -desktop (preemptive). There were also other differences (e.g. -desktop had HZ=1000, IIRC) but over the time, the only really important one was the preemption. At some point we decided to change -default to preemptive and drop -desktop. Before changing anything we might want to check the discussions leading to this decision (in particular, Mike Galbraith's insight). Michal -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
Hi,
-----Original Message----- From: Michal Kubecek <mkubecek@suse.cz> Sent: 10 January 2019 11:26 To: opensuse-kernel@opensuse.org Cc: Takashi Iwai <tiwai@suse.de>; Guillaume GARDET <guillaume.gardet@free.fr>; Andreas Färber <afaerber@suse.de>; Alexander Graf <agraf@suse.de> Subject: Re: [opensuse-kernel] [PATCH V2] config: arm64 switch from PREEMPT_NONE to PREEMPT
On Thu, 10 Jan 2019 10:50:59 +0100, Guillaume GARDET wrote:
as we need to have low latency on some systems.
Actually, it's an open question whether we still want to keep CONFIG_PREEMPT or not on other archs, too. CONFIG_PREEMPT hits performance significantly.
I don't know much about other distros, but IIRC, Fedora is using CONFIG_PREEMPT_VOLUNTARY instead. Ubuntu provide both non-
On Thursday, 10 January 2019 11:02 Takashi Iwai wrote: preempt and
CONFIG_PREEMPT versions? Correct me if wrong.
We used to have two flavors: -default (with preemption disabled) and - desktop (preemptive). There were also other differences (e.g. -desktop had HZ=1000, IIRC) but over the time, the only really important one was the preemption. At some point we decided to change -default to preemptive and drop -desktop.
Before changing anything we might want to check the discussions leading to this decision (in particular, Mike Galbraith's insight).
Could we move forward on this topic? PREEMPT is the upstream default for aarch64 since Nov-13 and previous value was PREEMPT_VOLUNTARY. Aarch64 is not server only, but also desktop (and laptop). If PREEMPT is a problem for you, we should probably switch to PREEMPT_VOLUNTARY instead. But PREEMPT_NONE is not a good choice for aarch64, IMO. Thanks, Guillaume
Michal
-- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
On Tue, Jan 29, 2019 at 09:22:43AM +0000, Guillaume Gardet wrote:
On Thu, 10 Jan 2019 10:50:59 +0100, Guillaume GARDET wrote:
as we need to have low latency on some systems.
Actually, it's an open question whether we still want to keep CONFIG_PREEMPT or not on other archs, too. CONFIG_PREEMPT hits performance significantly.
I don't know much about other distros, but IIRC, Fedora is using CONFIG_PREEMPT_VOLUNTARY instead. Ubuntu provide both non-
On Thursday, 10 January 2019 11:02 Takashi Iwai wrote: preempt and
CONFIG_PREEMPT versions? Correct me if wrong.
We used to have two flavors: -default (with preemption disabled) and - desktop (preemptive). There were also other differences (e.g. -desktop had HZ=1000, IIRC) but over the time, the only really important one was the preemption. At some point we decided to change -default to preemptive and drop -desktop.
Before changing anything we might want to check the discussions leading to this decision (in particular, Mike Galbraith's insight).
Could we move forward on this topic?
PREEMPT is the upstream default for aarch64 since Nov-13 and previous value was PREEMPT_VOLUNTARY. Aarch64 is not server only, but also desktop (and laptop). If PREEMPT is a problem for you, we should probably switch to PREEMPT_VOLUNTARY instead. But PREEMPT_NONE is not a good choice for aarch64, IMO.
I'm not opposed to changing the aarch64 config in principle, what I don't like is the reasoning. We rarely care about "upstream defaults" (i.e. the defconfigs in kernel git) and, to be honest, I'm a bit surprised that someone still does. If the reasoning is that we want the same value for all architectures, that makes perfect sense to me. If the reasoning is that aarch64 is specific in some way so that it should have a value different from other architectures, I'm fine with it as long as our ARM engineers ack such claim. Michal Kubecek -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
participants (5)
-
Alexander Graf
-
Guillaume GARDET
-
Guillaume Gardet
-
Michal Kubecek
-
Takashi Iwai