Le mardi 18 octobre 2011 à 12:05 +0200, Herbert Xu a écrit :
On Tue, Oct 18, 2011 at 12:01:33PM +0200, Eric Dumazet wrote:
quoted
Adding an RCU protected structure to hold hard_header_len /
needed_headroom / needed_tailroom should be possible, but this adds yet
another pointer dereference...
I don't think we need RCU here since the problem is simply that
we're using two different values for skb allocations and skb_reserve.
As long as we use one and the same value it should work. The value
will rarely be incorrect and when it is, automatic reallocation will
occur.
You're right, if reallocations are OK in all paths.
We'll need to change LL_RESERVED_SPACE() / LL_RESERVED_SPACE_EXTRA() /
LL_ALLOCATED_SPACE() macros and provide the [read once] values, instead
of a [read once] pointer to values.
Thats a bit complex change, but doable.