Messages in this thread | | | Date | Mon, 25 Jun 2012 14:38:09 +0200 | From | Johannes Stezenbach <> | Subject | Re: NOHZ: local_softirq_pending 08 |
| |
Hi,
On Fri, Jun 08, 2012 at 11:53:28PM +0200, Francois Romieu wrote: > Thomas Gleixner <tglx@linutronix.de> : > [...] > > Though the problem is, that it is neither called in interrupt context > > nor with bh disabled, so nothing invokes the softirq before it reaches > > idle. > > > > In hard interrupt context the pending flag is evaluated in irq_exit() > > and the softirqs are invoked from there. If you call that from thread > > context, then a bh_disable/enable pair will make sure that the pending > > softirq is invoked. Did I miss some more ___underscore magic which > > does that ? > > No. You _are_ right. > > That's why 98ddf986fca17840e46e070354b7e2cd2169da15 triggered the > message: it removed the last bh lock in the r8169 slow work context. > > /me slaps head... > > The whole thing is probably moot. Dave, can you apply the patch > below on top of a fresh kernel tree ? > > diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c > index 4a05b68..d452441 100644 > --- a/drivers/net/ethernet/realtek/r8169.c > +++ b/drivers/net/ethernet/realtek/r8169.c > @@ -5934,11 +5934,7 @@ static void rtl_slow_event_work(struct rtl8169_private *tp) > if (status & LinkChg) > __rtl8169_check_link_status(dev, tp, tp->mmio_addr, true); > > - napi_disable(&tp->napi); > - rtl_irq_disable(tp); > - > - napi_enable(&tp->napi); > - napi_schedule(&tp->napi); > + rtl_irq_enable_all(tp); > } > > static void rtl_task(struct work_struct *work)
I just upgraded my rarely-used Atom based netbook from 3.3.5 to 3.4.4 and got the "NOHZ: local_softirq_pending 08" message. Should this patch go into stable?
Johannes
| |