[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87tuyav4qx.fsf@nanos.tec.linutronix.de>
Date: Tue, 14 Jul 2020 11:13:26 +0200
From: Thomas Gleixner <tglx@...utronix.de>
To: Frederic Weisbecker <frederic@...nel.org>
Cc: LKML <linux-kernel@...r.kernel.org>,
Frederic Weisbecker <frederic@...nel.org>,
Anna-Maria Gleixner <anna-maria@...utronix.de>,
Peter Zijlstra <peterz@...radead.org>,
Juri Lelli <juri.lelli@...hat.com>
Subject: Re: [PATCH 2/9] timer: Add comments about calc_index() ceiling work
Frederic Weisbecker <frederic@...nel.org> writes:
> static inline unsigned calc_index(unsigned expires, unsigned lvl)
> {
> + /*
> + * Time may have past since the clock last reached an index of
> + * this @lvl. And that time, below LVL_GRAN(@lvl), is going to
> + * be substracted from the delta until we reach @expires. To
> + * fix that we must add one level granularity unit to make sure
> + * we rather expire late than early. Prefer ceil over floor.
This comment confuses the hell out of me.
/*
* The timer wheel has to guarantee that a timer does not fire
* early. Early expiry can happen due to:
* - Timer is armed at the edge of a tick
* - Truncation of the expiry time in the outer wheel levels
*
* Round up with level granularity to prevent this.
*/
Hmm?
Thanks,
tglx
Powered by blists - more mailing lists