On Thu, Aug 18 2022 at 10:55, Rasmus Villemoes wrote: > On 17/08/2022 18.27, Sebastian Andrzej Siewior wrote: >> -#ifdef CONFIG_PREEMPT_RT >> -int sysctl_compact_unevictable_allowed __read_mostly = 0; >> -#else >> -int sysctl_compact_unevictable_allowed __read_mostly = 1; >> -#endif >> +int sysctl_compact_unevictable_allowed __read_mostly = CONFIG_COMPACT_UNEVICTABLE_DEFAULT; > > Why introduce a Kconfig symbol for this, and not just spell the > initializer "IS_ENABLED(CONFIG_PREEMPT_RT) ? 0 : 1" or simply > "!IS_ENABLED(CONFIG_PREEMPT_RT)"? The reason for the config symbol is that Linus requested to have semantically obvious constructs which can be utilized even without RT and clearly spell out what the construct does. When RT selects this then it's a documented requirement/dependency. > And if you do keep it in Kconfig, shouldn't the symbol be "depends on > COMPACTION" so it doesn't needlessly appear in .config when > !CONFIG_COMPACTION. Sure. Thanks, tglx