2010-07-26 08:54:56

by Richard Kennedy

[permalink] [raw]
Subject: [PATCH] timer_list: remove alignment padding on 64 bit when CONFIG_TIMER_STATS

Re-order structure timer_list to remove 8 bytes of alignment padding on
64 bit builds when CONFIG_TIMER_STATS is selected.

timer_list is widely used across the kernel so many structures will
benefit and shrink in size.

For example, with my config on x86_64
per_cpu_dm_data shrinks from 136 to 128 bytes
and
ahci_port_priv shrinks from 1032 to 968 bytes.


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

---
patch against v2.6.35-rc6
compiled & tested on x86_64

regards
Richard


diff --git a/include/linux/timer.h b/include/linux/timer.h
index ea965b8..14a6fd4 100644
--- a/include/linux/timer.h
+++ b/include/linux/timer.h
@@ -24,9 +24,9 @@ struct timer_list {
int slack;

#ifdef CONFIG_TIMER_STATS
+ int start_pid;
void *start_site;
char start_comm[16];
- int start_pid;
#endif
#ifdef CONFIG_LOCKDEP
struct lockdep_map lockdep_map;