Re: [PATCH] nohz: Fix missing tick reprog while interrupting inline timer softirq

From: Frederic Weisbecker
Date: Fri Aug 24 2018 - 14:41:10 EST


On Fri, Aug 24, 2018 at 11:10:44AM -0500, Grygorii Strashko wrote:
> Yes. i do not see local_softirq_pending messages any more
>
> But one question, just to clarify, after patch "nohz: Fix missing tick reprog while interrupting inline timer softirq"
> the tick_nohz_irq_exit() will be called few times in case of nested interrupts (min 2):
> gic_handle_irq
> |- irq_exit
> |- preempt_count_sub(HARDIRQ_OFFSET);
> |-__do_softirq
> <irqs enabled>
> |- gic_handle_irq()
> |- irq_exit()
> |- tick_irq_exit()
> if (!in_irq())
> tick_nohz_irq_exit(); <-- [1]
> |- tick_irq_exit()
> if (!in_irq())
> tick_nohz_irq_exit(); <-- [2]
>
> Is it correct? in 4.14 tick_nohz_irq_exit() is much more complex then in LKML now,
> and this is hot path.

That's correct and it's indeed more costly in 4.14 as then the tick is going to be programmed
twice.