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

Re: [PATCH] rmap 13a



William Lee Irwin III wrote:
>> A:
>> static inline void *page_address(struct page *page)
>> {
>>         return __va((page - mem_map) << PAGE_SHIFT);
>> }

On Thu, May 09, 2002 at 12:34:34AM +0200, Roman Zippel wrote:
> This is very broken.

I beg your pardon? AFAICT it's equivalent to the macro you yourself
posted.

include/asm-i386/page.h:133:#define __va(x)                     ((void *)((unsigned long)(x)+PAGE_OFFSET))

It makes only 3 assumptions:
(1) memory is contiguous
(2) memory starts from 0
(3) mem_map is in 1:1 order-preserving correspondence with phys pages


William Lee Irwin III wrote:
>> If table lookup is wanted, I feel that should also be a generic option.
>> There is nothing inherently architecture-specific about using a table-
>> driven method of calculating page_address().

On Thu, May 09, 2002 at 12:34:34AM +0200, Roman Zippel wrote:
> Archs already do the kaddr->node lookup. Archs setup the virtual mapping
> and the pgdat nodes, they know best how they are layed out. Why do you
> want to generalize this?

Because they were doing it before and they all duplicated each others' code.


Cheers,
Bill
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/