]> www.infradead.org Git - users/jedix/linux-maple.git/commit
timers: Optimize get_timer_[this_]cpu_base()
authorZhongqiu Han <quic_zhonhan@quicinc.com>
Tue, 31 Dec 2024 15:01:15 +0000 (23:01 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 16 Jan 2025 08:04:23 +0000 (09:04 +0100)
commit3ec955713d9617059d2fc8f2816d0b95ace72256
treeae02bc0e4443638b5a96d1faaf56a56a34b3d52a
parent2d2a46cf23788a19e5450c6f9c86ab17f596c708
timers: Optimize get_timer_[this_]cpu_base()

If a timer is deferrable and NO_HZ_COMMON is enabled, get_timer_cpu_base()
and get_timer_this_cpu_base() invoke per_cpu_ptr() and this_cpu_ptr()
twice.

While this seems to be cheap, get_timer_cpu_base() can be called in a loop
in lock_timer_base().

Optimize the functions by updating the base index for deferrable timers and
retrieving the actual base pointer once.

In both cases the resulting assembly code of those helpers becomes smaller,
which results in a ~30% execution time reduction for a lock_timer_base()
micro bench mark.

Signed-off-by: Zhongqiu Han <quic_zhonhan@quicinc.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lore.kernel.org/all/20241231150115.1978342-1-quic_zhonhan@quicinc.com
kernel/time/timer.c