Re: [PATCH 2/2] page table iterators

From: Nick Piggin
Date: Sun Feb 20 2005 - 07:37:21 EST


Andi Kleen wrote:
On Thu, Feb 17, 2005 at 03:30:31PM -0800, David S. Miller wrote:

On Fri, 18 Feb 2005 00:03:42 +0100
Andi Kleen <ak@xxxxxxx> wrote:


And to be honest we only have about 6 or 7 of these walkers
in the whole kernel. And 90% of them are in memory.c
While doing 4level I think I changed all of them around several
times and it wasn't that big an issue. So it's not that we
have a big pressing problem here...

It's super error prone. A regression added by your edit of these


Actually it was in Nick's code (PUD layer ;-). But I won't argue
that my code didn't have bugs too...



I won't look back to see where the error came from :) But
yeah it is equally (if not more) likely to have come from
me. And it probably did happen because all the code is
slightly different and hard to understand.

walkers for the 4level changes was only discovered and fixed
yesterday by the ppc folks.

I absolutely support any change which consolidates these things.


The problem is just that these walker macros when they
do all the lazy walking stuff will be quite complicated.
And I don't really want another uaccess.h-like macro mess.

Yes currently they look simple, but that will change.


But even in that case, it will still be better to have the
extra complexity once in the macro rather than throughout mm/

Open coding is probably the smaller evil.

And they're really not changed that often.


It is not so much a matter of changing, so much as having 10
slightly different implementations.

I think it should be easier to go from the iterators patch to
perhaps more complex iterators, or some open coding, etc etc.
rather than try to put a big complex pt walker on top of these
10 different open coded implementations.

But perhaps I'm missing something you're not - I'd need to see
the lazy walking code I guess.

Nick

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/