[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cf3e6497-c77f-47eb-a35e-360ea68ade85@default>
Date: Mon, 22 Aug 2011 10:08:08 -0700 (PDT)
From: Dan Magenheimer <dan.magenheimer@...cle.com>
To: Jan Beulich <JBeulich@...ell.com>
Cc: hannes@...xchg.org, jackdachef@...il.com, hughd@...gle.com,
jeremy@...p.org, npiggin@...nel.dk, linux-mm@...ck.org,
akpm@...ux-foundation.org, sjenning@...ux.vnet.ibm.com,
Chris Mason <chris.mason@...cle.com>,
Konrad Wilk <konrad.wilk@...cle.com>,
Kurt Hackel <kurt.hackel@...cle.com>, riel@...hat.com,
ngupta@...are.org, linux-kernel@...r.kernel.org, matthew@....cx
Subject: RE: Subject: [PATCH V6 1/4] mm: frontswap: swap data structure
changes
> From: Jan Beulich [mailto:JBeulich@...ell.com]
> Sent: Tuesday, August 09, 2011 10:18 AM
> To: Dan Magenheimer
> Cc: hannes@...xchg.org; jackdachef@...il.com; hughd@...gle.com; jeremy@...p.org; npiggin@...nel.dk;
> linux-mm@...ck.org; akpm@...ux-foundation.org; sjenning@...ux.vnet.ibm.com; Chris Mason; Konrad Wilk;
> Kurt Hackel; riel@...hat.com; ngupta@...are.org; linux-kernel@...r.kernel.org; matthew@....cx
> Subject: RE: Subject: [PATCH V6 1/4] mm: frontswap: swap data structure changes
>
> >>> On 09.08.11 at 17:03, Dan Magenheimer <dan.magenheimer@...cle.com> 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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists