[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20100115.004915.64525965.davem@davemloft.net>
Date: Fri, 15 Jan 2010 00:49:15 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: eric.dumazet@...il.com
Cc: xiaosuo@...il.com, therbert@...gle.com, netdev@...r.kernel.org,
netfilter-devel@...r.kernel.org
Subject: Re: [PATCH v5] rps: Receive Packet Steering
From: Eric Dumazet <eric.dumazet@...il.com>
Date: Fri, 15 Jan 2010 07:57:56 +0100
> Le 15/01/2010 07:39, Changli Gao a écrit :
>> The code bellow is from my ifb-mq.patch
>> #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
>> case __constant_htons(ETH_P_IPV6):
>> process_ipv6:
>> if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr))))
>> goto process_other;
>> addr1 = ipv6_hdr(skb)->saddr.s6_addr32[3];
>> addr2 = ipv6_hdr(skb)->daddr.s6_addr32[3];
>> ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto);
>> if (unlikely(ihl < 0))
>> goto process_other_trans;
>> break;
>> #endif
>>
>>
>
> Thanks Changli !
Actually, no thanks. Have you actually taken a look at
ipv6_skip_exthdr()?
Do that, then tell me that you want the extra function call, plus all
of the processing and data touching that that function does, just to
handle the case that there "might" be ipv6 extension headers there.
It is the exception rather than the rule, and I think it's just
assume we have a real protocol header next.
And that's what skb_tx_hash() used to do too before we started using
the recorded RX queue and socket hash values.
Nobody cared and nobody complained. Guess why? Because in practice
it doesn't matter.
--
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