lkml.org 
[lkml]   [2009]   [Oct]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: NOHZ: local_softirq_pending 08
    From
    From: Tilman Schmidt <tilman@imap.cc>
    Date: Mon, 12 Oct 2009 10:28:56 +0200

    > -----BEGIN PGP SIGNED MESSAGE-----
    > Hash: SHA1
    >
    > [CCing PPP people]
    >
    > Am 11.10.2009 13:40 schrieb Johannes Berg:
    >> On Sun, 2009-10-11 at 13:18 +0200, Tilman Schmidt wrote:
    >>
    >>> Can you explain a bit more what that message is about?
    >>> I am encountering it in a completely different context
    >>> (PPP over ISDN) [...]
    >>
    >> Basically, calling netif_rx() with softirqs enabled.
    >
    > AFAICS that would have to be the netif_rx() call in
    > ppp_receive_nonmp_frame() [drivers/net/ppp_generic.c#L1791],
    > called (via others) from the tasklet work function
    > ppp_sync_process() [drivers/net/ppp_synctty.c#L545].
    > Should that be changed to the
    > "if (in_interrupt()) netif_rx(skb) else netif_rx_ni(skb)"
    > stanza from the linux.kernel.wireless.general thread then?

    The PPP receive paths in ppp_generic.c do a local_bh_disable()/
    local_bh_enable() around packet receiving (via ppp_recv_lock()/
    ppp_recv_unlock() in ppp_do_recv).

    So at least that part is perfectly fine.

    ppp_input(), as called from ppp_sync_process(), also disables BH's
    around ppp_do_recv() calls (via read_lock_bh()/read_unlock_bh()).

    So that's fine too.

    Do you have a bug report or are you just scanning around looking
    for trouble? :-)


    \
     
     \ /
      Last update: 2009-10-12 12:41    [W:3.195 / U:1.584 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site