From: Thomas Gleixner <tglx@linutronix.de>
To: Jens Axboe <axboe@kernel.dk>, Nam Cao <namcao@linutronix.de>,
Anna-Maria Behnsen <anna-maria@linutronix.de>,
Frederic Weisbecker <frederic@kernel.org>,
linux-kernel@vger.kernel.org
Subject: [PATCH] hrtimers: Make hrtimer_update_function() less expensive
Date: Fri, 07 Feb 2025 22:16:09 +0100 [thread overview]
Message-ID: <87ikpllali.ffs@tglx> (raw)
In-Reply-To: <ad55978e-4356-494e-8cda-9e6487344768@kernel.dk>
The sanity checks in hrtimer_update_function() are expensive for high
frequency usage like in the io/uring code due to locking.
Hide the sanity checks behind CONFIG_PROVE_LOCKING, which has a decent
chance to be enabled on a regular basis for testing.
Fixes: 8f02e3563bb5 ("hrtimers: Introduce hrtimer_update_function()")
Reported-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
include/linux/hrtimer.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -333,6 +333,7 @@ static inline int hrtimer_callback_runni
static inline void hrtimer_update_function(struct hrtimer *timer,
enum hrtimer_restart (*function)(struct hrtimer *))
{
+#ifdef CONFIG_PROVE_LOCKING
guard(raw_spinlock_irqsave)(&timer->base->cpu_base->lock);
if (WARN_ON_ONCE(hrtimer_is_queued(timer)))
@@ -340,7 +341,7 @@ static inline void hrtimer_update_functi
if (WARN_ON_ONCE(!function))
return;
-
+#endif
timer->function = function;
}
next prev parent reply other threads:[~2025-02-07 21:16 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-05 10:55 [PATCH v2 00/12] Consolidate hrtimer initialization - Part 5 Nam Cao
2025-02-05 10:55 ` [PATCH v2 01/12] hrtimers: Delete hrtimer_init() Nam Cao
2025-02-05 10:55 ` [PATCH v2 02/12] hrtimers: Switch to use __htimer_setup() Nam Cao
2025-02-05 10:55 ` [PATCH v2 03/12] hrtimers: Merge __hrtimer_init() into __hrtimer_setup() Nam Cao
2025-02-05 10:55 ` [PATCH v2 04/12] serial: xilinx_uartps: Use helper function hrtimer_update_function() Nam Cao
2025-02-05 10:55 ` [PATCH v2 05/12] io_uring: " Nam Cao
2025-02-05 18:45 ` Jens Axboe
2025-02-06 16:18 ` Thomas Gleixner
2025-02-06 20:05 ` Jens Axboe
2025-02-06 21:48 ` Thomas Gleixner
2025-02-07 17:46 ` Jens Axboe
2025-02-07 21:16 ` Thomas Gleixner [this message]
2025-02-08 15:18 ` [PATCH] hrtimers: Make hrtimer_update_function() less expensive Jens Axboe
2025-02-10 19:52 ` Thomas Gleixner
2025-02-10 19:56 ` Jens Axboe
2025-02-10 20:05 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2025-02-05 10:55 ` [PATCH v2 06/12] wifi: rt2x00: Switch to use hrtimer_update_function() Nam Cao
2025-02-05 10:55 ` [PATCH v2 07/12] hrtimers: Make callback function pointer private Nam Cao
2025-02-05 10:55 ` [PATCH v2 08/12] hrtimers: Remove unnecessary NULL check in hrtimer_start_range_ns() Nam Cao
2025-02-05 10:55 ` [PATCH v2 09/12] hrtimers: Rename __hrtimer_init_sleeper() to __hrtimer_setup_sleeper() Nam Cao
2025-02-05 10:55 ` [PATCH v2 10/12] hrtimers: Rename debug_init() to debug_setup() Nam Cao
2025-02-05 10:55 ` [PATCH v2 11/12] hrtimers: Rename debug_init_on_stack() to debug_setup_on_stack() Nam Cao
2025-02-05 10:55 ` [PATCH v2 12/12] tracing/timers: Rename hrtimer_init event to hrtimer_setup Nam Cao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ikpllali.ffs@tglx \
--to=tglx@linutronix.de \
--cc=anna-maria@linutronix.de \
--cc=axboe@kernel.dk \
--cc=frederic@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=namcao@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.