> From: Jan Beulich [mailto:JBeulich@xxxxxxxxxx] > Sent: Tuesday, August 09, 2011 10:18 AM > To: Dan Magenheimer > Cc: hannes@xxxxxxxxxxx; jackdachef@xxxxxxxxx; hughd@xxxxxxxxxx; jeremy@xxxxxxxx; npiggin@xxxxxxxxx; > linux-mm@xxxxxxxxx; akpm@xxxxxxxxxxxxxxxxxxxx; sjenning@xxxxxxxxxxxxxxxxxx; Chris Mason; Konrad Wilk; > Kurt Hackel; riel@xxxxxxxxxx; ngupta@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; matthew@xxxxxx > Subject: RE: Subject: [PATCH V6 1/4] mm: frontswap: swap data structure changes > > >>> On 09.08.11 at 17:03, Dan Magenheimer <dan.magenheimer@xxxxxxxxxx> wrote: > >> > --- linux/include/linux/swap.h 2011-08-08 08:19:25.880690134 -0600 > >> > +++ frontswap/include/linux/swap.h 2011-08-08 08:59:03.952691415 -0600 > >> > @@ -194,6 +194,8 @@ struct swap_info_struct { > >> > struct block_device *bdev; /* swap device or bdev of swap file */ > >> > struct file *swap_file; /* seldom referenced */ > >> > unsigned int old_block_size; /* seldom referenced */ > >> > >> #ifdef CONFIG_FRONTSWAP > >> > >> > + unsigned long *frontswap_map; /* frontswap in-use, one bit per page */ > >> > + unsigned int frontswap_pages; /* frontswap pages in-use counter */ > >> > >> #endif > >> > >> (to eliminate any overhead with that config option unset) > >> > >> Jan > > > > Hi Jan -- > > > > Thanks for the review! > > > > As noted in the commit comment, if these structure elements are > > not put inside an #ifdef CONFIG_FRONTSWAP, it becomes > > unnecessary to clutter the core swap code with several ifdefs. > > The cost is one pointer and one unsigned int per allocated > > swap device (often no more than one swap device per system), > > so the code clarity seemed more important than the tiny > > additional runtime space cost. > > > > Do you disagree? > > Not necessarily - I just know that in other similar occasions (partly > internally to our company) I was asked to make sure turned off > features would not leave *any* run time foot print whatsoever. > > Jan Hi Jan -- With two extra static inlines in frontswap.h (frontswap_map_get() and frontswap_map_set(), I've managed to both avoid the extra swap struct members for frontswap_map and frontswap_pages when CONFIG_FRONTSWAP is disabled AND avoid the #ifdef CONFIG_FRONTSWAP clutter in swapfile.h. I'll post a V7 soon... let me know what you think! Thanks, Dan -- 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/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href