Re: qdisc_enqueue, NET_XMIT_SUCCESS and kfree_skb
From: Jarek Poplawski <hidden>
Date: 2008-08-07 12:42:15
On Wed, Aug 06, 2008 at 10:09:11PM -0700, David Miller wrote:
From: David Miller <davem@davemloft.net> Date: Wed, 06 Aug 2008 20:26:36 -0700 (PDT)quoted
I still haven't seen anyone suggest creating a __NET_XMIT_KFREE_SKB to fix this most rediculious problem. I'm still waiting...Here is what it might look like. I haven't tried to boot this, but the only non-trivial case was SFQ's congestion drop code.
After some checking it looks mostly OK to me, but one thing: in sch_gred gred_drop() calls qdisc_drop(), so now it needs kfree_skb(). BTW, maybe it would be nicer to add __qdisc_drop() for these new things? There is also some doubt about differences between ->enqueue() and ->requeue() wrt. kfree_skb() and returning codes: maybe it would be better (for uniformity) to add similar changes to requeues (and dev_requeue_skb()) as well? I don't know if it's worth to mention, but now, if somebody really uses this sch_blackhole under some upper qdiscs the stats will change. Jarek P.