[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] rmap 13a
On Wed, May 08, 2002 at 08:21:37PM +0200, Roman Zippel wrote:
> I'd suggest, we move page_address to asm/page.h (as counterpart of
> virt_to_page). discontigmem configs can then use some more efficient
> table lookup. Other config usually want to implement it better as:
> #define page_address(page) ((((page) - mem_map) << PAGE_SHIFT) +
> PAGE_OFFSET)
> bye, Roman
Sorry, I missed the part about table lookup.
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().
But why isn't zone_table[] already an instance of such a table?
An annotated description of the generic version is:
/* the table lookup */
zone = zone_table[page->flags >> ZONE_SHIFT]
/* the phys offset of the table entry */
__va(zone->zone_start_paddr
+
/* calculating the offset within the table region */ /* scaling the offset */
((page - zone->zone_mem_map) << PAGE_SHIFT))
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/