Messages in this thread | | | Date | Sat, 20 Dec 2008 11:39:18 -0800 | From | Jeremy Fitzhardinge <> | Subject | Re: [PATCH][RFC 23/23]: Support for zero-copy TCP transmit of user space data |
| |
Evgeniy Polyakov wrote: > Things should work fine, since pskb_expand_head() copies whole shared > info structure (and thus will copy destructor), get all pages and then > copy all pointers into the new skb, and then release old skb's data. > > So destructor for the pages should not rely on which skb it is called on > and check if pages are about to be really freed (i.e. check theirs > reference counter). >
OK.
> __pskb_pull_tail() is tricky, it just puts some pages it does not want > to be present in the skb, but it could be possible to add there > destructor callback from the original skb with partial flag (or just > having destructor with two parameters: skb and page, and if page is not > NULL, then actually only given page is freed, otherwise the whole skb). >
Yes, that doesn't sound too bad.
J
| |