[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANn89iJ=09fL7NZhGGtt8+jgExckHkCFC=eFiNVEMiHoK5oOcA@mail.gmail.com>
Date: Thu, 7 Jan 2016 14:47:06 -0500
From: Eric Dumazet <edumazet@...gle.com>
To: Konstantin Khlebnikov <koct9i@...il.com>
Cc: Florian Westphal <fw@...len.de>,
Thadeu Lima de Souza Cascardo <cascardo@...hat.com>,
Cong Wang <xiyou.wangcong@...il.com>,
Linux Kernel Network Developers <netdev@...r.kernel.org>,
David Miller <davem@...emloft.net>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [BUG] skb corruption and kernel panic at forwarding with fragmentation
On Thu, Jan 7, 2016 at 2:35 PM, Konstantin Khlebnikov <koct9i@...il.com> wrote:
> On Thu, Jan 7, 2016 at 3:54 PM, Eric Dumazet <edumazet@...gle.com> wrote:
want to look at git history to find out why it is done this way.
>>
>> TCP performance is critical for some of us, and doing such trick avoid
>> one cache miss per skb in some critical list traversals.
>
> Right. This way tcp stuff perfectly fits into leftovers of first cache line.
> Then probably it's better to put ipv4/ipv6 cb into second line from
> the beginning.
Then IP forwarding might be slower.
Look, each layer (TCP , IP, ....) can organize its skb->cb[] as it wants.
Nobody tries to 'make universal room' for IPCB, since only IP layer wants it.
TCP could even find a way in the future to no longer hold a copy of
IPCB in the input skb,
if code is reorganized a bit.
Note that skbs for output path in TCP do not need IPCB at all.
Only when skb leaves TCP and enter IP, skb->cb[] content is scratched.
Powered by blists - more mailing lists