All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <frederic@kernel.org>
To: Anna-Maria Behnsen <anna-maria@linutronix.de>
Cc: linux-kernel@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	John Stultz <jstultz@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Eric Dumazet <edumazet@google.com>,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
	Arjan van de Ven <arjan@infradead.org>,
	"Paul E . McKenney" <paulmck@kernel.org>,
	Rik van Riel <riel@surriel.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Sebastian Siewior <bigeasy@linutronix.de>,
	Giovanni Gherdovich <ggherdovich@suse.cz>,
	Lukasz Luba <lukasz.luba@arm.com>,
	"Gautham R . Shenoy" <gautham.shenoy@amd.com>,
	Srinivas Pandruvada <srinivas.pandruvada@intel.com>,
	K Prateek Nayak <kprateek.nayak@amd.com>
Subject: Re: [PATCH v8 05/25] timers: Clarify check in forward_timer_base()
Date: Thu, 5 Oct 2023 12:17:57 +0200	[thread overview]
Message-ID: <ZR6NVdfsb6+Hujy0@lothringen> (raw)
In-Reply-To: <20231004123454.15691-6-anna-maria@linutronix.de>

On Wed, Oct 04, 2023 at 02:34:34PM +0200, Anna-Maria Behnsen wrote:
> The current check whether a forward of the timer base is required can be
> simplified by using an already existing comparison function which is easier
> to read. The related comment is outdated and was not updated when the check
> changed in commit 36cd28a4cdd0 ("timers: Lower base clock forwarding
> threshold").
> 
> Use time_before_eq() for the check and replace the comment by copying the
> comment from the same check inside get_next_timer_interrupt().
> 
> No functional change.
> 
> Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
> ---
>  kernel/time/timer.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/kernel/time/timer.c b/kernel/time/timer.c
> index 5e17244a9465..31aed8353db1 100644
> --- a/kernel/time/timer.c
> +++ b/kernel/time/timer.c
> @@ -944,11 +944,10 @@ static inline void forward_timer_base(struct timer_base *base)
>  	unsigned long jnow = READ_ONCE(jiffies);
>  
>  	/*
> -	 * No need to forward if we are close enough below jiffies.
> -	 * Also while executing timers, base->clk is 1 offset ahead
> -	 * of jiffies to avoid endless requeuing to current jiffies.
> +	 * Check whether we can forward the base. We can only do that when
> +	 * @basej is past base->clk otherwise we might rewind base->clk.

Reviewed-by: Frederic Weisbecker <frederic@kernel.org>

Also can we keep the precious information in the comment and move it to
the right place? Such as:

diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index 63a8ce7177dd..3e70ac818034 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -2015,6 +2015,10 @@ static inline void __run_timers(struct timer_base *base)
 		 */
 		WARN_ON_ONCE(!levels && !base->next_expiry_recalc
 			     && base->timers_pending);
+		/*
+		 * While executing timers, base->clk is set 1 offset ahead of
+		 * jiffies to avoid endless requeuing to current jiffies.
+		 */
 		base->clk++;
 		base->next_expiry = __next_timer_interrupt(base);
 

Thanks!

>  	 */
> -	if ((long)(jnow - base->clk) < 1)
> +	if (time_before_eq(jnow, base->clk))
>  		return;
>  
>  	/*
> -- 
> 2.39.2
> 

  reply	other threads:[~2023-10-05 15:57 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-04 12:34 [PATCH v8 00/25] timer: Move from a push remote at enqueue to a pull at expiry model Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 01/25] tick/sched: Cleanup confusing variables Anna-Maria Behnsen
2023-10-05  9:44   ` Frederic Weisbecker
2023-10-04 12:34 ` [PATCH v8 02/25] tick-sched: Warn when next tick seems to be in the past Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 03/25] timer: Do not IPI for deferrable timers Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 04/25] timer: Move store of next event into __next_timer_interrupt() Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 05/25] timers: Clarify check in forward_timer_base() Anna-Maria Behnsen
2023-10-05 10:17   ` Frederic Weisbecker [this message]
2023-10-16  8:11     ` Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 06/25] timers: Split out forward timer base functionality Anna-Maria Behnsen
2023-10-06 11:16   ` Frederic Weisbecker
2023-10-04 12:34 ` [PATCH v8 07/25] timers: Use already existing function for forwarding timer base Anna-Maria Behnsen
2023-10-06 11:17   ` Frederic Weisbecker
2023-10-04 12:34 ` [PATCH v8 08/25] timer: Rework idle logic Anna-Maria Behnsen
2023-10-09 22:15   ` Thomas Gleixner
2023-10-10 11:19     ` Frederic Weisbecker
2023-10-10 11:48       ` Thomas Gleixner
2023-10-04 12:34 ` [PATCH v8 09/25] timer: Split out get next timer functionality Anna-Maria Behnsen
2023-10-09 21:15   ` Frederic Weisbecker
2023-10-09 22:24     ` Thomas Gleixner
2023-10-09 22:17   ` Thomas Gleixner
2023-10-04 12:34 ` [PATCH v8 10/25] timers: Move marking timer bases idle into tick_nohz_stop_tick() Anna-Maria Behnsen
2023-10-12 15:52   ` Frederic Weisbecker
2023-10-19 13:37     ` Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 11/25] timers: Introduce add_timer() variants which modify timer flags Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 12/25] workqueue: Use global variant for add_timer() Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 13/25] timer: add_timer_on(): Make sure TIMER_PINNED flag is set Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 14/25] timers: Ease code in run_local_timers() Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 15/25] timer: Split next timer interrupt logic Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 16/25] timer: Keep the pinned timers separate from the others Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 17/25] timer: Retrieve next expiry of pinned/non-pinned timers separately Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 18/25] timer: Split out "get next timer interrupt" functionality Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 19/25] timer: Add get next timer interrupt functionality for remote CPUs Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 20/25] timer: Restructure internal locking Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 21/25] timer: Check if timers base is handled already Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 22/25] tick/sched: Split out jiffies update helper function Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 23/25] timer: Implement the hierarchical pull model Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 24/25] timer_migration: Add tracepoints Anna-Maria Behnsen
2023-10-04 12:34 ` [PATCH v8 25/25] timer: Always queue timers on the local CPU Anna-Maria Behnsen
2023-10-06  5:05 ` [PATCH v8 00/25] timer: Move from a push remote at enqueue to a pull at expiry model K Prateek Nayak
2023-10-19 14:14   ` Anna-Maria Behnsen
2023-10-20  9:06   ` Peter Zijlstra
2023-10-11 19:34 ` Pandruvada, Srinivas
2023-10-19 13:47   ` Anna-Maria Behnsen
2023-10-12  2:22 ` K Prateek Nayak
2023-10-19 13:55   ` Anna-Maria Behnsen
2023-10-13 11:35 ` Lukasz Luba
2023-10-19 14:04   ` Anna-Maria Behnsen
2023-10-19 14:28     ` Lukasz Luba

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=ZR6NVdfsb6+Hujy0@lothringen \
    --to=frederic@kernel.org \
    --cc=anna-maria@linutronix.de \
    --cc=arjan@infradead.org \
    --cc=bigeasy@linutronix.de \
    --cc=edumazet@google.com \
    --cc=gautham.shenoy@amd.com \
    --cc=ggherdovich@suse.cz \
    --cc=jstultz@google.com \
    --cc=kprateek.nayak@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lukasz.luba@arm.com \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=riel@surriel.com \
    --cc=rostedt@goodmis.org \
    --cc=srinivas.pandruvada@intel.com \
    --cc=tglx@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.