[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1365798584.4459.70.camel@edumazet-glaptop>
Date: Fri, 12 Apr 2013 13:29:44 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Alexander Duyck <alexander.h.duyck@...el.com>
Cc: Jeff Kirsher <jeffrey.t.kirsher@...el.com>, davem@...emloft.net,
netdev@...r.kernel.org, gospo@...hat.com, sassmann@...hat.com
Subject: Re: [net-next 02/11] ixgbe: Mask off check of frag_off as we only
want fragment offset
On Fri, 2013-04-12 at 13:12 -0700, Alexander Duyck wrote:
> I think part of the trouble is we are debating reworking the wrong
> function. We would probably be better off if we could come up with a
> generic way to handle the ixgbe_pull_tail function. I think the only
> complaint I would have in using the __skb_get_poff in there is the fact
> that it would be copying the header in multiple chunks. If it worked
> more like GRO where it just used an offset in the first frag instead of
> having to copy the headers separately to read them then I would be 100%
> on board.
__skb_get_poff() does no copy at all if you provide a linear 'skb'
Its really fast, I am really sorry you have wrong idea of what is going
on.
static inline void *skb_header_pointer(const struct sk_buff *skb, int offset,
int len, void *buffer)
{
int hlen = skb_headlen(skb);
if (hlen - offset >= len)
return skb->data + offset;
On the other hand GRO engine is way more expensive, now you mention it, we might
use the flow dissector to speed it.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists