On 16-08-17 04:01 PM, Eric Dumazet wrote: > On Wed, 2016-08-17 at 12:37 -0700, John Fastabend wrote: > >> diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c >> index d10b762..f5b7254 100644 >> --- a/net/sched/sch_generic.c >> +++ b/net/sched/sch_generic.c >> @@ -171,6 +171,7 @@ static void try_bulk_dequeue_skb_slow(struct Qdisc *q, >> if (qdisc_is_percpu_stats(q)) { >> qdisc_qstats_cpu_backlog_inc(q, nskb); >> qdisc_qstats_cpu_qlen_inc(q); >> + set_thread_flag(TIF_NEED_RESCHED); >> } else { >> qdisc_qstats_backlog_inc(q, nskb); >> q->q.qlen++; > > Hmm... care to elaborate this bit ? > > >
ah dang thats leftover from trying to resolve a skb getting stuck on the bad_txq_cell from qdisc_enqueue_skb_bad_txq(). You'll notice I added a __netif_schedule(skb) call in qdisc_enqueue_skb_bad_txq() which resolves this and the set_thread_flag() here can then just be removed. .John