|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] Like IA32 PAE xenlinux, we also need make VMX guest 1:1
# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 19b458d4ba93ed4b54a74598e907a3c40be635b7
# Parent 7ce64f021a2c6bb092d8c940dadfa17ad18ac56f
Like IA32 PAE xenlinux, we also need make VMX guest 1:1 page table PGD
page below 4G.
Signed-off-by: Xin Li <xin.b.li@xxxxxxxxx>
Signed-off-by: Chengyuan Li <chengyuan.li@xxxxxxxxx>
Signed-off-by: Yunhong Jiang <yunhong.jiang@xxxxxxxxx>
Signed-off-by: Jun Nakajima <jun.nakajima@xxxxxxxxx>
diff -r 7ce64f021a2c -r 19b458d4ba93 tools/libxc/xc_vmx_build.c
--- a/tools/libxc/xc_vmx_build.c Thu Sep 15 08:59:35 2005
+++ b/tools/libxc/xc_vmx_build.c Thu Sep 15 09:12:03 2005
@@ -376,9 +376,21 @@
if ( (mmu = xc_init_mmu_updates(xc_handle, dom)) == NULL )
goto error_out;
+ /* First allocate page for page dir or pdpt */
+ ppt_alloc = (vpt_start - dsi.v_start) >> PAGE_SHIFT;
+ if ( page_array[ppt_alloc] > 0xfffff )
+ {
+ unsigned long nmfn;
+ nmfn = xc_make_page_below_4G( xc_handle, dom, page_array[ppt_alloc] );
+ if ( nmfn == 0 )
+ {
+ fprintf(stderr, "Couldn't get a page below 4GB :-(\n");
+ goto error_out;
+ }
+ page_array[ppt_alloc] = nmfn;
+ }
+
#ifdef __i386__
- /* First allocate page for page dir. */
- ppt_alloc = (vpt_start - dsi.v_start) >> PAGE_SHIFT;
l2tab = page_array[ppt_alloc++] << PAGE_SHIFT;
ctxt->ctrlreg[3] = l2tab;
@@ -414,8 +426,6 @@
munmap(vl1tab, PAGE_SIZE);
munmap(vl2tab, PAGE_SIZE);
#else
- /* First allocate pdpt */
- ppt_alloc = (vpt_start - dsi.v_start) >> PAGE_SHIFT;
/* here l3tab means pdpt, only 4 entry is used */
l3tab = page_array[ppt_alloc++] << PAGE_SHIFT;
ctxt->ctrlreg[3] = l3tab;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] Like IA32 PAE xenlinux, we also need make VMX guest 1:1 page table PGD,
Xen patchbot -unstable <=
|
|
|
|
|