Re: [PATCH 08/33] readahead: common macros

Andrew Morton
2006-05-25T14:38:40Z

Wu Fengguang <wfg@mail.ustc.edu.cn> wrote:
>
> On Thu, May 25, 2006 at 03:56:24PM +1000, Nick Piggin wrote:
> > >+#define PAGES_BYTE(size) (((size) + PAGE_CACHE_SIZE - 1) >>
> > >PAGE_CACHE_SHIFT)
> > >+#define PAGES_KB(size) PAGES_BYTE((size)*1024)
> > >
> > Don't really like the names. Don't think they do anything for clarity, but
> > if you can come up with something better for PAGES_BYTE I might change my
> > mind ;) (just forget about PAGES_KB - people know what *1024 means)
> >
> > Also: the replacements are wrong: if you've defined VM_MAX_READAHEAD to be
> > 4095 bytes, you don't want the _actual_ readahead to be 4096 bytes, do you?
> > It is saying nothing about minimum, so presumably 0 is the correct choice.
>
> Got an idea, how about these ones:
>
> #define FULL_PAGES(bytes) ((bytes) >> PAGE_CACHE_SHIFT)

I dunno. We've traditionally open-coded things like this.

> #define PARTIAL_PAGES(bytes) (((bytes)+PAGE_CACHE_SIZE-1) >> PAGE_CACHE_SHIFT)

That's identical to include/linux/kernel.h:DIV_ROUND_UP(), from the gfs2 tree.