|   xen-ia64-devel
RE: [Xen-ia64-devel] [PATCH][RFC]discontig memory support 
| >From: Kouya SHIMURA
>Sent: 2006年4月3日 20:32
>Hi xen/ia64 developers.
>
>The attached patch supports discontiguous memory.
>It also makes over 4GB memory available.
>Please comment and review.
>
>Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
Good work, Kouya.
>
>I have no idea which has good performance. Attached patch implements
>the same way as VIRTUAL_MEM_MAP because of ease. But I think
>SPARSEMEM
>should be implemented in future because it would be a mainstream in
>Linux. In this case, common code might be modified.
It's OK to start from easy way first, and then evaluate which one is better. 
>From what I recalled, there's no obvious preference on ia64/linux 
community upon these two approaches(simplicity Vs complex, TLB Vs 
cache) and that's why two approaches still co-exist waiting for more data 
to distinguish. However things may become a bit different for xen/ia64, 
since currently there's no VHPT table used for Xen hypervisor. A rough 
thought based on that background is, people may have to face many TLB 
misses caused by access to vmem_map table and thus the benefit of 
VIRTUAL_MEM_MAP is pulled down...
>
>[DESIGN]
>* Location of the virtual address of frame_table
>  I set the frame_table start at 0xf300000000000000 which region
>  number is 7. Region number 7 is used for Xen hypervisor. The page
>  size is 16KB. VHPT is disabled in this region and 16KB/16MB/64MB
>  page size are mixed. The virtual aliasing might occur but the
>  performance wouldn't be affected.
Let's make it clearer. Region 7 is shared among guest and xen hypervisor, 
where 0xe800.... - 0xf7ff.... is reserved for the later. In this context, 
region 
ID is shared.
Another point is, VHPT walker is enabled in region 7 at dom0 boot phase 
and then on, though that VHPT table only caches guest translation 
content. (set_one_rr)
For virtual aliasing, IA64 processor ensures cache coherency and data 
dependencies in the presence of an alias. You need be more careful 
about the virtual attribute aliasing which is a disaster to the whole system. 
But normally it should be OK, since frame table itself just comes from 
normal memory. :-)
>  - Location of PGD.
>    A page(swapper_pg_dir) pointed from init_mm.pgd seems to be
>never
>    used. So I use this page as PGD for virtual frame_table. If
>    someone uses this page, please tell me.
Though I'm not sure whether some code path with reference to this page 
will be actually executed, it never hurt to allocate a new page/name 
specific for your purpose which is also clearer.
>
>I appended a code that checks the fault address is inside of
>frame_table and traverses the address translation table and inserts a
>translation cache. To avoid nested data TLB fault, data address
>translation is disabled at the time of table walking. On fail of table
>walking, ia64_fault() is called.
If you can measure the TLB miss ratio of accessing vmemmap, that could 
help a lot to make right choice.
>
>[STATUS]
>  * Xen and domU and domVTI (cset:9484:ddc279c91502) work well on
>    Tiger4 with 8MB physical memory.
>
>[TODO]
>  * mpt_table (defined in xen/arch/ia64/xen/xenmem.c) implies the same
>    problem. We have to fix it.
>  * redesign of address translation table
>  * performance evaluation
>  * cleanup #ifdefs of CONFIG_VIRTUAL_MEM_MAP
>--------------------------------------------------------------------
So last comment is, you may need to keep 
CONFIG_VIRTUAL_MEM_MAP option for a while, instead of merging 
code immediately. That can help add or remove a feature as an integrity, 
especially when direction is not clear. Also like Linux, it's better to add a 
check upon holes even when CONFIG_VIRTUAL_MEM_MAP is enabled, 
since overhead can be avoided on boxes without memory holes by using 
physical memmap.
Thanks,
Kevin
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
 | 
 
| <Prev in Thread] | Current Thread | [Next in Thread> |  | 
Re: [Xen-ia64-devel] [PATCH] discontig memory support, Alex Williamson
RE: [Xen-ia64-devel] [PATCH][RFC]discontig memory support,
Tian, Kevin <=
RE: [Xen-ia64-devel] [PATCH][RFC]discontig memory support, Tian, Kevin
RE: [Xen-ia64-devel] [PATCH][RFC]discontig memory support, Tian, Kevin
RE: [Xen-ia64-devel] [PATCH][RFC]discontig memory support, Tian, KevinRe: [Xen-ia64-devel] [PATCH][RFC]discontig memory support, (continued)
 |  |  |