Sorry, bounced from vger the first time due to formatting
---------- Forwarded message ----------
From: Chris Leech <[email protected]>
Date: Dec 20, 2005 11:05 PM
Subject: Re: [RFC][PATCH 4/5] I/OAT DMA support and TCP acceleration
To: Eric Dumazet <[email protected]>
Cc: lkml <[email protected]>, netdev
<[email protected]>, "Grover, Andrew" <[email protected]>,
"Ronciak, John" <[email protected]>
On 12/20/05, Eric Dumazet <[email protected]> wrote:
> Please consider not enlarging cb[] if not CONFIG_NET_DMA ?
>
> I mean, most machines wont have a compatable NIC, so why should they pay the
> price (memory, cpu) in a critical structure named sk_buff ?
>
> #ifdef CONFIG_NET_DMA
> typedef dma_cookie_t net_dma_cookie_t;
> #else
> typedef struct {} net_dma_cookie_t;
> #endif
>
> ...
>
> char cb[40+sizeof(net_dma_cookie_t)];
>
That could be a good way to deal with it. Actually, I should double
check the length of tcp_skb_cb. I took a quick look and thought that
there might be some room left there anyway, even though the comment in
tcp.h says otherwise.
-Chris
From: Chris Leech <[email protected]>
Date: Tue, 20 Dec 2005 23:10:07 -0800
> That could be a good way to deal with it. Actually, I should double
> check the length of tcp_skb_cb. I took a quick look and thought that
> there might be some room left there anyway, even though the comment in
> tcp.h says otherwise.
There isn't, it's basically full on 64-bit systems with ipv6 enabled.
Just put the DMA cookie object explicitly into struct sk_buff,
protected by CONFIG_NET_DMA.