|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
RE: [Xen-ia64-devel] [PATCH] [RFC] [TAKE2] P2M/VP (incomplete) patches
>From: Isaku Yamahata
>Sent: 2006年3月10日 14:47
>
>The following 9 patches are for grant table and vbd.
>9188:f1f79363e36d_libxc_ia64_get_pfn_list_work_around.patch
>9189:a60e1b202538_dont_use_vga_area.patch
>9190:34adabc2b3b0_gnttab_shared_gmfn.patch
>9191:2ac9130fb9f6_fix_grant_entry_t_frame.patch
This one is a fix and can be sent out to xen mailing list earlier. But it may
not be so urgent to see the issue for IA64 and x86-64. See how large
even 32bit can support: 4G * 4K = 16T. I don't think people ever tested on
it now. :-)
>9192:80353e9e2e0f_grant_table_xen_part.patch
>9193:6922c2fe7446_grant_table_linux_part.patch
Sorry that I didn't look into carefully, but why following logic:
+#ifndef __ia64__
shared[ref].frame = frame;
+#else
+ shared[ref].frame = mfn_to_pfn(frame);//XXX
+#endif
The caller already does virt_to_mfn which results a hypercall by your
model, and now another hypercall caused by mfn_to_pfn again. It's better
to make a decision whether frames passed from xenlinux is
pseudophysical or machine, and then just support it uniformly. You see
current grant table code can handle either case, differentiated by shadow
translated mode for x86. Though we have no shadow code for xen/ia64,
but that's the flag you can use to simplify changes.
BTW, what's the intent of alloc_vm_area? Seems no one calls it. Also a
typo there:
struct vm_struct* area;
...
area = kmalloc(sizeof(area), GFP_KERNEL); which only gives you 8
bytes. :-)
Thanks,
Kevin
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
|
|
|
|