Re: [tip: timers/core] tick: Mark sched_timer to expire in hard interrupt context

From: Frederic Weisbecker
Date: Wed Aug 28 2019 - 09:48:43 EST


On Wed, Aug 28, 2019 at 11:03:33AM -0000, tip-bot2 for Sebastian Andrzej Siewior wrote:
> The following commit has been merged into the timers/core branch of tip:
>
> Commit-ID: 71fed982d63cb2bb88db6f36059e3b14a7913846
> Gitweb: https://git.kernel.org/tip/71fed982d63cb2bb88db6f36059e3b14a7913846
> Author: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
> AuthorDate: Fri, 23 Aug 2019 13:38:45 +02:00
> Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> CommitterDate: Wed, 28 Aug 2019 13:01:26 +02:00
>
> tick: Mark sched_timer to expire in hard interrupt context
>
> sched_timer must be initialized with the _HARD mode suffix to ensure expiry
> in hard interrupt context on RT.
>
> The previous conversion to HARD expiry mode missed on one instance in
> tick_nohz_switch_to_nohz(). Fix it up.
>
> Fixes: 902a9f9c50905 ("tick: Mark tick related hrtimers to expiry in hard interrupt context")
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Link: https://lkml.kernel.org/r/20190823113845.12125-3-bigeasy@xxxxxxxxxxxxx
>
> ---
> kernel/time/tick-sched.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
> index 01ff32a..9558517 100644
> --- a/kernel/time/tick-sched.c
> +++ b/kernel/time/tick-sched.c
> @@ -1233,7 +1233,7 @@ static void tick_nohz_switch_to_nohz(void)
> * Recycle the hrtimer in ts, so we can share the
> * hrtimer_forward with the highres code.
> */
> - hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
> + hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD);

That said, this instance only uses hrtimer for time computing. The backend is
clockevent directly.

> /* Get the next period */
> next = tick_init_jiffy_update();
>