2008-10-16 21:51:45

by Matthew Wilcox

[permalink] [raw]
Subject: [PATCH] Rearrange struct device for better packing


This minor rearrangement saves 16 bytes from sizeof(struct device)
according to pahole.

Signed-off-by: Matthew Wilcox <[email protected]>

diff --git a/include/linux/device.h b/include/linux/device.h
index 4d8372d..d0624b5 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -358,9 +358,9 @@ struct device {

struct kobject kobj;
char bus_id[BUS_ID_SIZE]; /* position on parent bus */
+ unsigned uevent_suppress:1;
const char *init_name; /* initial name of the device */
struct device_type *type;
- unsigned uevent_suppress:1;

struct semaphore sem; /* semaphore to synchronize calls to
* its driver.
@@ -393,12 +393,13 @@ struct device {
/* arch specific additions */
struct dev_archdata archdata;

+ dev_t devt; /* dev_t, creates the sysfs "dev" */
+
spinlock_t devres_lock;
struct list_head devres_head;

struct list_head node;
struct class *class;
- dev_t devt; /* dev_t, creates the sysfs "dev" */
struct attribute_group **groups; /* optional groups */

void (*release)(struct device *dev);

--
Matthew Wilcox Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."