Messages in this thread | | | Date | Tue, 26 Feb 2013 13:15:08 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [PATCH 2/2] irq: Cleanup context state transitions in irq_exit() |
| |
On Fri, 22 Feb 2013, Linus Torvalds wrote: > On Fri, Feb 22, 2013 at 7:06 AM, Thomas Gleixner <tglx@linutronix.de> wrote: > >> > >> I prefer to let you guys have the final word on this patch. Whether you > >> apply it or not, I fear I'll never be entirely happy either way :) > >> That's the sad fate of dealing with circular dependencies... > > > > plus the butt ugly softirq semantics or the lack thereof ... > > The softirq semantics are perfectly fine. Don't blame softirq for the > fact that irq_exit() has had shit-for-brains for a long time. > > Just move the whole "invoke_softirq()" thing down to *after* the > tick_nohz_irq_exit() stuff.
We can't move tick_nohz_irq_exit() before invoke_softirq() simply because we need to take the timers into account for NOHZ and those can change when the softirq code runs.
So no, we need an extra check after invoke_softirq() and the same is true for RCU.
Thanks,
tglx
| |