netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: fix kmemcheck annotations
@ 2009-10-29 10:10 Eric Dumazet
  2009-10-29 10:17 ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Eric Dumazet @ 2009-10-29 10:10 UTC (permalink / raw)
  To: David S. Miller; +Cc: Linux Netdev List

struct sk_buff kmemcheck annotations enlarged this structure by 8/16 bytes

Fix this by moving 'protocol' inside flags1 bitfield,
and queue_mapping inside flags2 bitfield.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
---

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 0c68fbd..defd51d 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -354,8 +354,8 @@ struct sk_buff {
 				ipvs_property:1,
 				peeked:1,
 				nf_trace:1;
+	__be16			protocol:16;
 	kmemcheck_bitfield_end(flags1);
-	__be16			protocol;
 
 	void			(*destructor)(struct sk_buff *skb);
 #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
@@ -367,7 +367,6 @@ struct sk_buff {
 #endif
 
 	int			iif;
-	__u16			queue_mapping;
 #ifdef CONFIG_NET_SCHED
 	__u16			tc_index;	/* traffic control index */
 #ifdef CONFIG_NET_CLS_ACT
@@ -376,6 +375,7 @@ struct sk_buff {
 #endif
 
 	kmemcheck_bitfield_begin(flags2);
+	__u16			queue_mapping:16;
 #ifdef CONFIG_IPV6_NDISC_NODETYPE
 	__u8			ndisc_nodetype:2;
 #endif

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] net: fix kmemcheck annotations
  2009-10-29 10:10 [PATCH] net: fix kmemcheck annotations Eric Dumazet
@ 2009-10-29 10:17 ` David Miller
  2009-10-29 10:44   ` Eric Dumazet
  0 siblings, 1 reply; 4+ messages in thread
From: David Miller @ 2009-10-29 10:17 UTC (permalink / raw)
  To: eric.dumazet; +Cc: netdev

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Thu, 29 Oct 2009 11:10:37 +0100

> @@ -367,7 +367,6 @@ struct sk_buff {
>  #endif
>  
>  	int			iif;
> -	__u16			queue_mapping;
>  #ifdef CONFIG_NET_SCHED
>  	__u16			tc_index;	/* traffic control index */
>  #ifdef CONFIG_NET_CLS_ACT
> @@ -376,6 +375,7 @@ struct sk_buff {
>  #endif
>  
>  	kmemcheck_bitfield_begin(flags2);
> +	__u16			queue_mapping:16;
>  #ifdef CONFIG_IPV6_NDISC_NODETYPE
>  	__u8			ndisc_nodetype:2;
>  #endif

We may be trading size for performance here, I wonder if
it's wise to move queue_mapping like that and what
locality change we get as a result.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] net: fix kmemcheck annotations
  2009-10-29 10:17 ` David Miller
@ 2009-10-29 10:44   ` Eric Dumazet
  2009-10-30  5:54     ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Eric Dumazet @ 2009-10-29 10:44 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

David Miller a écrit :
> 
> We may be trading size for performance here, I wonder if
> it's wise to move queue_mapping like that and what
> locality change we get as a result.

I agree, but could not convince me it makes a difference.

On 64bit arches, queue_mapping doesnt change its cache line location
(0xa4 -> 0xa8)

On 32bit arches, sizeof(sk_buf)=0xB0, rx and tx paths touch all
 of 3 cache lines anyway.

Only thing I can think at this moment is to reorder skb so that TX 
completion path dont touch all cache lines (putting together cb[] 
and some not touched fields). We could probably gain one cache line miss.

It's a bit hard because of the next/prev fields that must
be first members of structure, but I believe you had some work in progress
in this area, to stick a standard list_head ?


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] net: fix kmemcheck annotations
  2009-10-29 10:44   ` Eric Dumazet
@ 2009-10-30  5:54     ` David Miller
  0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2009-10-30  5:54 UTC (permalink / raw)
  To: eric.dumazet; +Cc: netdev

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Thu, 29 Oct 2009 11:44:48 +0100

> David Miller a écrit :
>> 
>> We may be trading size for performance here, I wonder if
>> it's wise to move queue_mapping like that and what
>> locality change we get as a result.
> 
> I agree, but could not convince me it makes a difference.

Ok, I'll apply your patch as-is to net-2.6, thanks!

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-10-30  5:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-29 10:10 [PATCH] net: fix kmemcheck annotations Eric Dumazet
2009-10-29 10:17 ` David Miller
2009-10-29 10:44   ` Eric Dumazet
2009-10-30  5:54     ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).