Re: [PATCH 6/13] maps: Move the page walker code to lib/

Nick Piggin
2007-04-05T01:32:30Z

Matt Mackall wrote:
> On Wed, Apr 04, 2007 at 03:50:56PM +1000, Nick Piggin wrote:
>
>>Matt Mackall wrote:
>>
>>>On Wed, Apr 04, 2007 at 01:51:37PM +1000, Nick Piggin wrote:
>>>
>>>
>>>>Matt Mackall wrote:
>>>>
>>>>
>>>>>Move the page walker code to lib/
>>>>>
>>>>>This lets it get shared outside of proc/ and linked in only when
>>>>>needed.
>>>>
>>>>I think it would be better in mm/.
>>>
>>>
>>>I originally was looking at putting it in mm/memory.c and possibly
>>
>>Just put it in its own file in mm/ rather than its own file in lib.
>>lib should be for almost-standalone stuff, IMO (ie. only using basic
>>kernel functionality).
>
>
> Arguably that's what lib/ should be for, but it's currently largely

I disagree. There is code everywhere that exists to provide some
functionality via an API to other parts of the kernel. You don't
think mm/page_alloc.c should go in lib/?

> used to avoid linking in unused code without adding more hair to
> Kconfig. Which is what I'm trying to do here.

Well if you're doing a nice big reorganisation and jumble, then
why would you worry about a few lines in Kconfig?

>>Apart from these users outside mm/, I don't see much point in converting
>>things over. The page table walking API we have now is neat and simple.
>>It takes a few lines of code, but is it a big problem?
>
>
> I don't think it really qualifies as either neat or simple. It may be
> about as neat as walking a heterogenous tree with an inconsistent
> naming scheme can be, but it's still a headache. A maze of twisty
> little passages, all slightly different.

All page table range walking code should be the same.
It is a simple template to use to walk a range of ptes. It is
a headache outside mm/, sure, but not because of its incredible
complexity.

--
SUSE Labs, Novell Inc.