lkml.org 
[lkml]   [2012]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: NOHZ: local_softirq_pending 08
    From
    On Fri, Jun 8, 2012 at 5:53 PM, Francois Romieu <romieu@fr.zoreil.com> 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)

    That works for me - no warnings after several reboots and bringing the
    interface up/down many times.

    Marc
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2012-06-09 01:41    [W:0.027 / U:121.460 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site