Hi Diederik, On 2023-10-10 01:54, Diederik de Haas wrote: > On Tuesday, 10 October 2023 12:10:07 CEST Emanuele Rocca wrote: > > 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. > > Neither does amd64. So it appears something else is causing > CONFIG_PREEMPT_DYNAMIC to be enabled on amd64.
Here is where HAVE_PREEMPT_DYNAMIC_CALL is set on x86: https://sources.debian.org/src/linux/6.5.6-1/arch/x86/Kconfig/?hl=271#L271 > I think it should be explicitly enabled (or disabled) and not be it dependent > on some other, possibly unrelated, Kconfig option being enabled Right, but HAVE_PREEMPT_DYNAMIC_CALL is not a config option. It's a setting that defines whether the architecture can use inline static calls to handle the preemption model passed to the kernel command line with preempt= To my understanding, only x86 can do that. From the PREEMPT_DYNAMIC Kconfig help: The runtime overhead is negligible with HAVE_STATIC_CALL_INLINE enabled but if runtime patching is not available for the specific architecture then the potential overhead should be considered. > ad 1) I _think_ running benchmarks is not that useful as its result > will/should > vary based on the default preemption model and whether that is overridden > on the kernel command line Sorry, I wasn't clear in my previous message about what we should be benchmarking. The current Debian kernel on arm64 has PREEMPT_VOLUNTARY=y and PREEMPT_DYNAMIC not set. We want to run benchmarks to see if a kernel with PREEMPT_DYNAMIC=y booted with preempt=voluntary has any significant slowdowns compared to the current kernels. We don't want to benchmark the various preemption models.

