I think you misunderstand.. netif_rx frees the skb. In this example:
netif_rx(skb); /* free skb of size PKT_BUF_SZ */
skb = dev_alloc_skb(PKT_BUF_SZ)
an alloc of a PKT_BUF_SZ'd skb immediately follows a free of a
same-sized skb. 100% of the time.
It seems an obvious shortcut to me, to have __netif_rx or similar
-clear- the skb head not free it. No changes to memory management or
additional low memory situations created by this, AFAICS.
> 4) Better support for aligned RX by only copying the header, no the whole
> packet, to end up with an aligned IP header. Unless the driver knows about
> all protocol lengths this means the stack needs to support "parse header
> in this buffer, then switch to other buffer with computed offset for data"
This requires scatter-gather hardware support, right? If so, would this
support only exist for checksumming hardware -- like the current
zerocopy -- or would non-checksumming SG hardware like tulip be
supported too?
Jeff
-- Jeff Garzik | "You see, in this world there's two kinds of Building 1024 | people, my friend: Those with loaded guns MandrakeSoft | and those who dig. You dig." --Blondie - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/