Messages in this thread | | | Date | Tue, 7 Jul 2015 16:23:47 +0200 | From | Frederic Weisbecker <> | Subject | Re: [PATCH 5/8] nohz: Restart the tick from irq exit |
| |
On Sun, Jun 14, 2015 at 03:00:12PM +0530, Preeti U Murthy wrote: > On 06/12/2015 06:08 PM, Frederic Weisbecker wrote: > > On Fri, Jun 12, 2015 at 09:32:45AM +0200, Peter Zijlstra wrote: > >> On Thu, Jun 11, 2015 at 07:36:05PM +0200, Frederic Weisbecker wrote: > >>> Restart the tick when necessary from the irq exit path. It makes nohz > >>> full more flexible and allow it to piggyback the tick restart on the > >>> scheduler IPI in the future instead of sending a dedicated IPI that > >>> often doubles the scheduler IPI on task wakeup. This will require > >>> careful review of resched_curr() callers. > >> > >> This seems to assume schedule_ipi() callers use irq_exit(), this is > >> false. > > > > Indeed there will be that too. Note the current patch doesn't yet rely on > > schedule_ipi(), we are still using the nohz ipis. But introducing the > > tick restart on irq exit prepares for later piggybacking on scheduler_ipi(). > > > > I think this will involve changes on got_nohz_idle_kick(), renamed to > > got_nohz_kick() and include nohz full related checks to trigger the > > irq_enter()/exit() pair. > > I maybe saying something obvious here, nevertheless; I am not sure about > other archs, but atleast on powerpc after handling an interrupt, we will > call irq_exit() and reevaluate starting of ticks. So in our case even if > scheduler_ipi() callers do not call irq_exit(), it will be called after > handling the reschedule interrupt.
scheduler_ipi() takes care of the call to irq_enter() and irq_exit() when necessary. Which means that the arch low level handler for scheduler_ipi() shouldn't call these functions. If it does then it's buggy.
| |