On Tue, Dec 19, 2017 at 09:19:56AM +0100, Michal Hocko wrote: > On Sat 16-12-17 08:44:23, Matthew Wilcox wrote: > > From: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx> > > > > Neither of these values get even close to 256; compound_dtor is > > currently at a maximum of 3, and compound_order can't be over 64. > > No machine has inefficient access to bytes since EV5, and while > > those are still supported, we don't optimise for them any more. > > Hmm, so the improvement is the ifdef-ery removale, right? Beucase this > will not shrink the structure size AFAICS. I think that the former is > a sufficient justification. Maybe you should spell it out. I'll add that to the changelog. It also frees up 2-6 bytes for another usage, if we decide there's something else we need to store in a compound page. I also added the pahole diff output: @@ -34,8 +34,8 @@ struct callback_head callback_head; /* 32 16 */ struct { long unsigned int compound_head; /* 32 8 */ - unsigned int compound_dtor; /* 40 4 */ - unsigned int compound_order; /* 44 4 */ + unsigned char compound_dtor; /* 40 1 */ + unsigned char compound_order; /* 41 1 */ }; /* 32 16 */ }; /* 32 16 */ union { > > Signed-off-by: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx> > > Acked-by: Michal Hocko <mhocko@xxxxxxxx> > > > --- > > include/linux/mm_types.h | 15 ++------------- > > 1 file changed, 2 insertions(+), 13 deletions(-) > > > > diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h > > index 5521c9799c50..1a3ba1f1605d 100644 > > --- a/include/linux/mm_types.h > > +++ b/include/linux/mm_types.h > > @@ -136,19 +136,8 @@ struct page { > > unsigned long compound_head; /* If bit zero is set */ > > > > /* First tail page only */ > > -#ifdef CONFIG_64BIT > > - /* > > - * On 64 bit system we have enough space in struct page > > - * to encode compound_dtor and compound_order with > > - * unsigned int. It can help compiler generate better or > > - * smaller code on some archtectures. > > - */ > > - unsigned int compound_dtor; > > - unsigned int compound_order; > > -#else > > - unsigned short int compound_dtor; > > - unsigned short int compound_order; > > -#endif > > + unsigned char compound_dtor; > > + unsigned char compound_order; > > }; > > > > #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && USE_SPLIT_PMD_PTLOCKS > > -- > > 2.15.1 > > > > -- > > To unsubscribe, send a message with 'unsubscribe linux-mm' in > > the body to majordomo@xxxxxxxxx. For more info on Linux MM, > > see: http://www.linux-mm.org/ . > > Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> > > -- > Michal Hocko > SUSE Labs > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@xxxxxxxxx. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>