Andrew Morton wrote: > Nick Piggin wrote: > >>> #if defined(CONFIG_SMP) >> >> > struct zone_padding { >> > - int x; >> > } ____cacheline_maxaligned_in_smp; >> > #define ZONE_PADDING(name) struct zone_padding name; >> > #else >> >> Perhaps to keep old compilers working? Not sure. > > > gcc-2.95 is OK with it. > > Stock 2.6.9: > > sizeof(struct zone) = 1920 > > With Andrea's patch: > > sizeof(struct zone) = 1536 > > With ZONE_PADDING removed: > > sizeof(struct zone) = 1408 > > How about this patch. 1536 before, 1152 afterwards for me. Uses the zero length array which seems to be quite abundant throughout the tree (although maybe that also causes problems when it is by itself in an array?). Also try to be a bit smarter about getting commonly accessed fields together, which surely can't be worse than before.