On Wed, Jan 10, 2018 at 08:19:49PM -0800, Linus Torvalds wrote: > On Wed, Jan 10, 2018 at 7:22 PM, Frederic Weisbecker > <frede...@kernel.org> wrote: > > > > Makes sense, but I think you need to keep the TASK_RUNNING check. > > Yes, good point. > > > So perhaps it should be: > > > > - return tsk && (tsk->state == TASK_RUNNING); > > + return (tsk == current) && (tsk->state == TASK_RUNNING); > > Looks good to me - definitely worth trying. > > Maybe that weakens the thing so much that it doesn't actually help the > UDP packet storm case? > > And maybe it's not sufficient for the dvb issue. > > But I think it's worth at least testing. Maybe it makes neither side > entirely happy, but maybe it might be a good halfway point?
Yes I believe Dmitry is facing a different problem where he would rather see ksoftirqd scheduled more often to handle the queue as a deferred batch instead of having it served one by one on the tails of IRQ storms. (Dmitry correct me if I misunderstood). But your patch still seems to make sense for the case you described: when ksoftirqd is voluntarily preempted off and the current IRQ could handle the queue.