2008-07-07 11:58:24

by Richard Kennedy

[permalink] [raw]
Subject: [PATCH] net: remove padding from struct socket on 64bit & increase objects/cache

remove padding from struct socket reducing its size by 8 bytes.

This allows more objects/cache in sock_inode_cache
12 objects/cache when cacheline size is 128 (generic x86_64)

Signed-off-by: Richard Kennedy <[email protected]>
----

compiled & booted on 2.6.26-rc8

Richard


diff --git a/include/linux/net.h b/include/linux/net.h
index 71f7dd5..150a48c 100644
--- a/include/linux/net.h
+++ b/include/linux/net.h
@@ -106,23 +106,23 @@ enum sock_shutdown_cmd {
/**
* struct socket - general BSD socket
* @state: socket state (%SS_CONNECTED, etc)
+ * @type: socket type (%SOCK_STREAM, etc)
* @flags: socket flags (%SOCK_ASYNC_NOSPACE, etc)
* @ops: protocol specific socket operations
* @fasync_list: Asynchronous wake up list
* @file: File back pointer for gc
* @sk: internal networking protocol agnostic socket representation
* @wait: wait queue for several uses
- * @type: socket type (%SOCK_STREAM, etc)
*/
struct socket {
socket_state state;
+ short type;
unsigned long flags;
const struct proto_ops *ops;
struct fasync_struct *fasync_list;
struct file *file;
struct sock *sk;
wait_queue_head_t wait;
- short type;
};

struct vm_area_struct;


2008-07-08 10:03:45

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net: remove padding from struct socket on 64bit & increase objects/cache

From: Richard Kennedy <[email protected]>
Date: Mon, 07 Jul 2008 12:58:10 +0100

> remove padding from struct socket reducing its size by 8 bytes.
>
> This allows more objects/cache in sock_inode_cache
> 12 objects/cache when cacheline size is 128 (generic x86_64)
>
> Signed-off-by: Richard Kennedy <[email protected]>

Applied to net-next-2.6, thanks!