Re: Bug: Discontigmem virt_to_page() [Alpha,ARM,Mips64?]

From: Andrea Arcangeli (andrea@suse.de)
Date: Thu May 02 2002 - 13:57:41 EST


On Thu, May 02, 2002 at 12:31:52PM -0700, Martin J. Bligh wrote:
> between physical to virtual memory to a non 1-1 mapping.

correct. The direct mapping is nothing magic, it's like a big static
kmap area. Everybody is required to use
virt_to_page/page_address/pci_map_single/... to switch between virtual
address and mem_map anyways (thanks to the discontigous mem_map), so you
can use this property by making discontigous the virtual space as well,
not only the mem_map. discontigmem basically just allows that.

> No, you don't need to call changing that mapping "CONFIG_NONLINEAR",
> but that's basically what the bulk of Dan's patch does, so I think we should
> steal it with impunity ;-)

The difference is that if you use discontigmem you don't clobber the
common code in any way, there is no "logical/ordinal" abstraction,
there is no special table, it's all hidden in the arch section, and the
pgdat you need them anyways to allocate from affine memory with numa.

Actually the same mmu technique can be used to coalesce in virtual
memory the discontigous chunks of iSeries, then you left the lookup in
the tree to resolve from mem_map to the right virtual address and from
the right virtual address back to mem_map. (and you left DISCONTIGMEM
disabled) I think it should be possible.

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



This archive was generated by hypermail 2b29 : Tue May 07 2002 - 22:00:15 EST