lkml.org 
[lkml]   [2018]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC 1/2] softirq: Defer net rx/tx processing to ksoftirqd context
    On Wed, 17 Jan 2018, Linus Torvalds wrote:

    > On Wed, Jan 17, 2018 at 1:54 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
    > > raise_softirq() -> raise_softirq_irqoff()
    > >
    > > set_softirq_bit();
    > >
    > > if (!in_interrupt())
    > > wake_softirqd();
    > >
    > > So if the caller is not in hard or soft interrupt context, which includes
    > > bottom half disabled regions softirqd is woken.
    >
    > That does seem unnecessarily expensive, and maybe we could just do it
    > with thread flag (TIF_NOTIFY_RESUME or whatever).
    >
    > In fact, that was what I *thought* we did. Maybe I just remember some
    > historical behavior.
    >
    > Since networking seems to largely prefer softirqd anyway, maybe that
    > wake_softirqd() is the right thing to do anyway.

    Well, but we only do it when we are not in a bh disabled region. The places
    where thread context raises the network softirqs is usually inside a bh
    disabled region, so the softirq is executed on local_bh_enable(). The
    thread is woken up rarely.

    Thanks,

    tglx

    \
     
     \ /
      Last update: 2018-01-18 00:22    [W:6.506 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site