Re: RFC: CONFIG_PAGE_SHIFT (aka software PAGE_SIZE)

Dave Hansen
2007-07-06T23:33:37Z

On Sat, 2007-07-07 at 00:26 +0200, Andrea Arcangeli wrote:
> for the hack week at opensuse (see http://idea.opensuse.org/) I've
> been working on a new feature called CONFIG_PAGE_SHIFT.
...
> If you want to help/look here the patch:
>
> http://www.kernel.org/pub/linux/kernel/people/andrea/patches/v2.6/2.6.22-rc7/hard-page-size
>
> I'm tracking it with hg mq extension so far, but I can change if it
> helps.

The patch looks really interesting, it's just a little hard to parse
with all of the s/4096/PAGE_SIZE/ bits around. Those cleanups, along
with the s/PAGE_SIZE/HARD_PAGE_SIZE/ parts would be great in a
separated-out patch so that the really juicy bits (like the pte
handling) where the new logic is stand out better.

I think it would help readability to have something like:

#define PAGES_PER_HARD_PAGE (1<<(PAGE_SHIFT-HARD_PAGE_SHIFT))

which would look like this:

- if (unlikely(!pfn_valid(pfn))) {
+ if (unlikely(!pfn_valid(pfn * PAGES_PER_HARD_PAGE))) {

Instead of having hardpfn_t, would it be more useful to tag the types
with sparse? That's probably something that other interested parties
could work on.

-- Dave