netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/6] skb paged fragment destructors
@ 2012-01-25 12:26 Ian Campbell
  2012-01-25 12:27 ` [PATCH v3 1/6] net: pad skb data and shinfo as a whole rather than individually Ian Campbell
                   ` (5 more replies)
  0 siblings, 6 replies; 22+ messages in thread
From: Ian Campbell @ 2012-01-25 12:26 UTC (permalink / raw)
  To: David Miller; +Cc: netdev@vger.kernel.org, Eric Dumazet, Ian.Campbell

The following series makes use of the skb fragment API (which is in 3.2)
to add a per-paged-fragment destructor callback. This can be used by
creators of skbs who are interested in the lifecycle of the pages
included in that skb after they have handed it off to the network stack.
I think these have all been posted before, but have been backed up
behind the skb fragment API.

The mail at [0] contains some more background and rationale but
basically the completed series will allow entities which inject pages
into the networking stack to receive a notification when the stack has
really finished with those pages (i.e. including retransmissions,
clones, pull-ups etc) and not just when the original skb is finished
with, which is beneficial to many subsystems which wish to inject pages
into the network stack without giving up full ownership of those page's
lifecycle. It implements something broadly along the lines of what was
described in [1].

I have also included a patch to the RPC subsystem which uses this API to
fix the bug which I describe at [2].

Since last time I have removed the unnecessary void *data from the
destructor struct and made do_tcp_sendpages take only a single
destructor instead of an array.

More importantly I have also played with the shinfo alignment and member
ordering to ensure that the frequently used fields (including at least
one frag) are all within the same 64 byte cache line. In order to do
this I had to evict destructor_arg from the hot cache line -- however I
believe this is not actually a hot field and so this is acceptable.

Cheers,
Ian.

[0] http://marc.info/?l=linux-netdev&m=131072801125521&w=2
[1] http://marc.info/?l=linux-netdev&m=130925719513084&w=2
[2] http://marc.info/?l=linux-nfs&m=122424132729720&w=2

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2012-02-01 10:09 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-25 12:26 [PATCH v3 0/6] skb paged fragment destructors Ian Campbell
2012-01-25 12:27 ` [PATCH v3 1/6] net: pad skb data and shinfo as a whole rather than individually Ian Campbell
2012-01-25 12:51   ` Eric Dumazet
2012-01-25 13:09     ` Ian Campbell
2012-01-25 13:12       ` Eric Dumazet
2012-01-31 14:35         ` Ian Campbell
2012-01-31 14:45           ` Eric Dumazet
2012-02-01  9:39             ` Ian Campbell
2012-02-01 10:02               ` Eric Dumazet
2012-02-01 10:09                 ` Ian Campbell
2012-01-31 14:54           ` Francois Romieu
2012-02-01  9:38             ` Ian Campbell
2012-01-25 12:27 ` [PATCH v3 2/6] net: move destructor_arg to the front of sk_buff Ian Campbell
2012-01-25 12:27 ` [PATCH v3 3/6] net: add support for per-paged-fragment destructors Ian Campbell
2012-01-25 12:27 ` [PATCH v3 4/6] net: only allow paged fragments with the same destructor to be coalesced Ian Campbell
     [not found] ` <1327494389.24561.316.camel-o4Be2W7LfRlXesXXhkcM7miJhflN2719@public.gmane.org>
2012-01-25 12:27   ` [PATCH v3 5/6] net: add paged frag destructor support to kernel_sendpage Ian Campbell
2012-01-25 12:27 ` [PATCH v3 6/6] sunrpc: use SKB fragment destructors to delay completion until page is released by network stack Ian Campbell
     [not found]   ` <1327494434-21566-6-git-send-email-ian.campbell-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org>
2012-01-26 13:11     ` Michael S. Tsirkin
     [not found]       ` <20120126131136.GA16400-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-01-30 15:51         ` Ian Campbell
2012-01-30 16:23           ` Michael S. Tsirkin
     [not found]             ` <20120130162306.GB9345-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-01-30 16:43               ` Ian Campbell
     [not found]                 ` <1327941813.26983.270.camel-o4Be2W7LfRlXesXXhkcM7miJhflN2719@public.gmane.org>
2012-01-30 18:06                   ` Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).