Re: [PATCH 01/15] tick/nohz: Remove duplicate between tick_nohz_switch_to_nohz() and tick_setup_sched_timer()

From: Thomas Gleixner
Date: Thu Jan 25 2024 - 08:34:29 EST


On Thu, Jan 25 2024 at 12:57, Frederic Weisbecker wrote:
> On Thu, Jan 25, 2024 at 10:12:20AM +0100, Thomas Gleixner wrote:
>> Adding
>>
>> #define tick_nohz_highres_handler NULL
>>
>> for CONFIG_HIGH_RES_TIMERS=n somewhere allows you to write that as:
>>
>> if (IS_ENABLED(CONFIG_HIGH_RES_TIMERS) && mode == NOHZ_MODE_HIGHRES)
>> ts->sched_timer.function = tick_nohz_highres_handler;
>
> So the next patch does:
>
> if (mode == NOHZ_MODE_HIGHRES)
> ts->sched_timer.function = tick_nohz_highres_handler;
>
> Because that condition only happens in CONFIG_HIGH_RES_TIMERS anyway
> and the function field exists in any case.

Right, but the function does not exist for HRES=n, so you need the
#define ... NULL. The IS_ENABLED() allows the compiler to eliminate the
code for HRES=n completely.

Thanks,

tglx