[PATCH] net: reorder fields of struct socket

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Eric Dumazet
Date: Saturday, March 14, 2009 - 2:03 am

On x86_64, its rather unfortunate that "wait_queue_head_t wait"
field of "struct socket" spans two cache lines (assuming a 64
bytes cache line in current cpus)

offsetof(struct socket, wait)=0x30
sizeof(wait_queue_head_t)=0x18

This might explain why Kenny Chang noticed that his multicast workload
was performing bad with 64 bit kernels, since more cache lines ping pongs
were involved.

This litle patch moves "wait" field next "fasync_list" so that both
fields share a single cache line, to speedup sock_def_readable()

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>

diff --git a/include/linux/net.h b/include/linux/net.h
index 4515efa..4fc2ffd 100644
--- a/include/linux/net.h
+++ b/include/linux/net.h
@@ -129,11 +129,15 @@ struct socket {
 	socket_state		state;
 	short			type;
 	unsigned long		flags;
-	const struct proto_ops	*ops;
+	/*
+	 * Please keep fasync_list & wait fields in the same cache line
+	 */
 	struct fasync_struct	*fasync_list;
+	wait_queue_head_t	wait;
+
 	struct file		*file;
 	struct sock		*sk;
-	wait_queue_head_t	wait;
+	const struct proto_ops	*ops;
 };
 
 struct vm_area_struct;

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: Multicast packet loss, Wes Chow, (Mon Feb 2, 12:51 pm)
Re: Multicast packet loss, Eric Dumazet, (Mon Feb 2, 1:29 pm)
Re: Multicast packet loss, Wes Chow, (Mon Feb 2, 2:09 pm)
Re: Multicast packet loss, Eric Dumazet, (Mon Feb 2, 2:31 pm)
Re: Multicast packet loss, Kenny Chang, (Tue Feb 3, 10:34 am)
Re: Multicast packet loss, Neil Horman, (Tue Feb 3, 6:21 pm)
Re: Multicast packet loss, Kenny Chang, (Thu Feb 26, 10:15 am)
Re: Multicast packet loss, Eric Dumazet, (Sat Feb 28, 1:51 am)
Re: Multicast packet loss, Eric Dumazet, (Sun Mar 1, 10:03 am)
Re: Multicast packet loss, David Miller, (Wed Mar 4, 1:16 am)
Re: Multicast packet loss, Eric Dumazet, (Wed Mar 4, 1:36 am)
Re: Multicast packet loss, Eric Dumazet, (Sat Mar 7, 12:46 am)
Re: Multicast packet loss, Eric Dumazet, (Sun Mar 8, 9:46 am)
Re: Multicast packet loss, David Miller, (Sun Mar 8, 7:49 pm)
Re: Multicast packet loss, Eric Dumazet, (Sun Mar 8, 11:36 pm)
Re: Multicast packet loss, Brian Bloniarz, (Mon Mar 9, 3:56 pm)
Re: Multicast packet loss, Eric Dumazet, (Mon Mar 9, 10:28 pm)
Re: Multicast packet loss, Brian Bloniarz, (Tue Mar 10, 4:22 pm)
Re: Multicast packet loss, Eric Dumazet, (Tue Mar 10, 8:00 pm)
Re: Multicast packet loss, Brian Bloniarz, (Thu Mar 12, 8:47 am)
Re: Multicast packet loss, Eric Dumazet, (Thu Mar 12, 9:34 am)
Re: Multicast packet loss, David Miller, (Fri Mar 13, 2:51 pm)
Re: Multicast packet loss, Eric Dumazet, (Fri Mar 13, 3:30 pm)
Re: Multicast packet loss, David Miller, (Fri Mar 13, 3:38 pm)
Re: Multicast packet loss, Eric Dumazet, (Fri Mar 13, 3:45 pm)
[PATCH] net: reorder fields of struct socket, Eric Dumazet, (Sat Mar 14, 2:03 am)
Re: [PATCH] net: reorder fields of struct socket, David Miller, (Sun Mar 15, 7:59 pm)
Re: Multicast packet loss, Eric Dumazet, (Mon Mar 16, 3:22 pm)
Re: Multicast packet loss, Peter Zijlstra, (Tue Mar 17, 3:11 am)
Re: Multicast packet loss, Eric Dumazet, (Tue Mar 17, 4:08 am)
Re: Multicast packet loss, Peter Zijlstra, (Tue Mar 17, 4:57 am)
Re: Multicast packet loss, Brian Bloniarz, (Tue Mar 17, 8:00 am)
Re: Multicast packet loss, Eric Dumazet, (Tue Mar 17, 8:16 am)
Re: Multicast packet loss, David Stevens, (Tue Mar 17, 12:39 pm)
Re: Multicast packet loss, Eric Dumazet, (Tue Mar 17, 2:19 pm)
Re: Multicast packet loss, Brian Bloniarz, (Fri Apr 3, 12:28 pm)
Re: Multicast packet loss, Eric Dumazet, (Sun Apr 5, 6:49 am)
Re: Multicast packet loss, Brian Bloniarz, (Mon Apr 6, 2:53 pm)
Re: Multicast packet loss, Brian Bloniarz, (Mon Apr 6, 3:12 pm)
Re: Multicast packet loss, Brian Bloniarz, (Tue Apr 7, 1:08 pm)
Re: Multicast packet loss, Eric Dumazet, (Wed Apr 8, 1:12 am)