Hi,

On 2023-10-08 07:17, Diederik de Haas wrote:
> $ grep PREEMPT_DYNAMIC /boot/config-6.5.0-1-amd64 
> CONFIG_PREEMPT_DYNAMIC=y
> CONFIG_HAVE_PREEMPT_DYNAMIC=y
> CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y

[...]

> $ grep PREEMPT_DYNAMIC /boot/config-6.1.0-13-arm64 
> # CONFIG_PREEMPT_DYNAMIC is not set
> CONFIG_HAVE_PREEMPT_DYNAMIC=y
> CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y

CONFIG_PREEMPT_DYNAMIC is set to 'y' by default on amd64 due to
HAVE_PREEMPT_DYNAMIC_CALL being 'y', see:
https://sources.debian.org/src/linux/6.5.6-1/kernel/Kconfig.preempt/?hl=101#L101

arm64 does not have PREEMPT_DYNAMIC_CALL, this is why PREEMPT_DYNAMIC is
not set by default there. However, there's another feature which is
functionally equivalent, PREEMPT_DYNAMIC_KEY. While _CALL and _KEY are
equivalent, in theory _KEY may have more overhead. See:
https://lore.kernel.org/lkml/20220214165216.2231574-1-mark.rutl...@arm.com/#t

SUSE and Fedora both seem to have CONFIG_HAVE_PREEMPT_DYNAMIC=y on
arm64, see:
https://github.com/SUSE/kernel-source/blob/SLE15-SP6/config/arm64/default#L123
https://src.fedoraproject.org/rpms/kernel/blob/f34/f/kernel.spec#_4458

Setting CONFIG_HAVE_PREEMPT_DYNAMIC=y on arm64 is likely safe for us
too, but we may want to run some benchmark first to see if there are any
noticeable slowdowns.

Reply via email to