Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933607Ab3HHAG7 (ORCPT ); Wed, 7 Aug 2013 20:06:59 -0400 Received: from mail-pa0-f50.google.com ([209.85.220.50]:48936 "EHLO mail-pa0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933082Ab3HHAG5 (ORCPT ); Wed, 7 Aug 2013 20:06:57 -0400 Message-ID: <1375920415.4004.67.camel@edumazet-glaptop> Subject: Re: linux-next: Tree for Aug 7 From: Eric Dumazet To: David Miller Cc: phil@nwl.cc, johannes@sipsolutions.net, sedat.dilek@gmail.com, sfr@canb.auug.org.au, linux-next@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, hannes@stressinduktion.org, linux-wireless@vger.kernel.org, linville@tuxdriver.com Date: Wed, 07 Aug 2013 17:06:55 -0700 In-Reply-To: <20130807.163621.84433966934449459.davem@davemloft.net> References: <20130807.104713.1615549684239408926.davem@davemloft.net> <20130807183758.GB16263@orbit.nwl.cc> <20130807.162748.779496444843938176.davem@davemloft.net> <20130807.163621.84433966934449459.davem@davemloft.net> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 Content-Transfer-Encoding: 7bit Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4275 Lines: 104 On Wed, 2013-08-07 at 16:36 -0700, David Miller wrote: > From: David Miller > Date: Wed, 07 Aug 2013 16:27:48 -0700 (PDT) > > > Look, I'm going to fix this myself, because I'm pretty tired of > > waiting for the obvious fix. > > Someone please test this: > > diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h > index c623861..afc02a6 100644 > --- a/include/linux/etherdevice.h > +++ b/include/linux/etherdevice.h > @@ -29,6 +29,7 @@ > > #ifdef __KERNEL__ > extern __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev); > +extern __be16 __eth_type_trans(struct sk_buff *skb, struct net_device *dev); > extern const struct header_ops eth_header_ops; > > extern int eth_header(struct sk_buff *skb, struct net_device *dev, > diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c > index be1f64d..35dc1be 100644 > --- a/net/ethernet/eth.c > +++ b/net/ethernet/eth.c > @@ -146,6 +146,45 @@ int eth_rebuild_header(struct sk_buff *skb) > EXPORT_SYMBOL(eth_rebuild_header); > > /** > + * __eth_type_trans - only determine the packet's protocol ID. > + * @skb: packet > + * @dev: device > + */ > +__be16 __eth_type_trans(struct sk_buff *skb, struct net_device *dev) > +{ We probably want an inline here Or else, we are adding an extra function call in rx fast path. (At least my compiler did this) 0000000000000470 : 470: e8 00 00 00 00 callq 475 471: R_X86_64_PC32 __fentry__-0x4 475: 48 8b 8f d0 00 00 00 mov 0xd0(%rdi),%rcx 47c: 48 8b 87 c8 00 00 00 mov 0xc8(%rdi),%rax 483: 44 8b 47 60 mov 0x60(%rdi),%r8d 487: 55 push %rbp 488: 48 89 77 20 mov %rsi,0x20(%rdi) 48c: 48 89 ca mov %rcx,%rdx 48f: 48 89 e5 mov %rsp,%rbp 492: 48 29 c2 sub %rax,%rdx 495: 41 83 f8 0d cmp $0xd,%r8d 499: 66 89 97 b8 00 00 00 mov %dx,0xb8(%rdi) 4a0: 76 19 jbe 4bb 4a2: 41 83 e8 0e sub $0xe,%r8d 4a6: 44 3b 47 64 cmp 0x64(%rdi),%r8d 4aa: 44 89 47 60 mov %r8d,0x60(%rdi) 4ae: 72 36 jb 4e6 4b0: 48 83 c1 0e add $0xe,%rcx 4b4: 48 89 8f d0 00 00 00 mov %rcx,0xd0(%rdi) 4bb: 81 e2 ff ff 00 00 and $0xffff,%edx 4c1: 48 01 d0 add %rdx,%rax 4c4: f6 00 01 testb $0x1,(%rax) 4c7: 75 2e jne 4f7 4c9: 48 8b 96 88 02 00 00 mov 0x288(%rsi),%rdx 4d0: 48 8b 00 mov (%rax),%rax 4d3: 48 33 02 xor (%rdx),%rax 4d6: 48 c1 e0 10 shl $0x10,%rax 4da: 48 85 c0 test %rax,%rax 4dd: 75 09 jne 4e8 4df: e8 00 00 00 00 callq 4e4 4e0: R_X86_64_PC32 __eth_type_trans-0x4 4e4: 5d pop %rbp 4e5: c3 retq 4e6: 0f 0b ud2 4e8: 0f b6 47 75 movzbl 0x75(%rdi),%eax 4ec: 83 e0 f8 and $0xfffffff8,%eax 4ef: 83 c8 03 or $0x3,%eax 4f2: 88 47 75 mov %al,0x75(%rdi) 4f5: eb e8 jmp 4df 4f7: 48 8b 00 mov (%rax),%rax 4fa: 48 33 86 b8 02 00 00 xor 0x2b8(%rsi),%rax 501: 48 c1 e0 10 shl $0x10,%rax 505: 48 85 c0 test %rax,%rax 508: 0f b6 47 75 movzbl 0x75(%rdi),%eax 50c: 75 0b jne 519 50e: 83 e0 f8 and $0xfffffff8,%eax 511: 83 c8 01 or $0x1,%eax 514: 88 47 75 mov %al,0x75(%rdi) 517: eb c6 jmp 4df 519: 83 e0 f8 and $0xfffffff8,%eax 51c: 83 c8 02 or $0x2,%eax 51f: 88 47 75 mov %al,0x75(%rdi) 522: eb bb jmp 4df -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/