Re: [PATCH 17/33] readahead: context based method

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 26, 2006 at 10:23:43AM -0700, Andrew Morton wrote:
> Wu Fengguang <[email protected]> wrote:
> >
> > +#define PAGE_REFCNT_0           0
> >  +#define PAGE_REFCNT_1           (1 << PG_referenced)
> >  +#define PAGE_REFCNT_2           (1 << PG_active)
> >  +#define PAGE_REFCNT_3           ((1 << PG_active) | (1 << PG_referenced))
> >  +#define PAGE_REFCNT_MASK        PAGE_REFCNT_3
> >  +
> >  +/*
> >  + * STATUS   REFERENCE COUNT
> >  + *  __                   0
> >  + *  _R       PAGE_REFCNT_1
> >  + *  A_       PAGE_REFCNT_2
> >  + *  AR       PAGE_REFCNT_3
> >  + *
> >  + *  A/R: Active / Referenced
> >  + */
> >  +static inline unsigned long page_refcnt(struct page *page)
> >  +{
> >  +        return page->flags & PAGE_REFCNT_MASK;
> >  +}
> >  +
> 
> This assumes that PG_referenced < PG_active.  Nobody knows that this
> assumption was made and someone might go and reorder the page flags and
> subtly break readahead.
> 
> We need to either not do it this way, or put a big comment in page-flags.h,
> or even redefine PG_active to be PG_referenced+1.

I have had a code segment like:

#if PG_active < PG_referenced
#  error unexpected page flags order
#endif

I'd add it back.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux