[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Xen Nested Virtualization for HyperPlatform



Hi,

I am researching
HyperPlatform(https://github.com/tandasat/HyperPlatform) recently, it
is a thin hypervisor based on Intel VT-x and EPT technology, it can't
create a new virtual machine but just turns the already running
Windows OS into its guest VM.

HyperPlatform works very well in VMware VM with Intel VT-x/EPT
enabled, however can't run in Xen VM with nested virtualizaiton, after
loading HyperPlatform, the VM hangs or BSOD.

I debug it with serial console and printk, add the following printks
to function nestedhvm_hap_nested_page_fault(), which will be called by
EPT violation exit handler.

...
  212     /* walk the L1 P2M table */
  213     rv = nestedhap_walk_L1_p2m(v, *L2_gpa, &L1_gpa,
&page_order_21, &p2ma_21,
  214         access_r, access_w, access_x);
+ 215     gdprintk(XENLOG_ERR, "nestedhap_walk_L1_p2m, rv: %d, L2_gpa:
%lx, L1_gpa: %lx\n", rv, *L2_gpa, L1_gpa);
...
  230     /* ==> we have to walk L0 P2M */
  231     rv = nestedhap_walk_L0_p2m(p2m, L1_gpa, &L0_gpa,
  232         &p2mt_10, &p2ma_10, &page_order_10,
  233         access_r, access_w, access_x);
+ 234     gdprintk(XENLOG_ERR, "nestedhap_walk_L0_p2m, rv: %d, L1_gpa:
%lx, L0_gpa: %lx\n", rv, L1_gpa, L0_gpa);
...

The serial console output:

...
(XEN) nested_hap.c:215:d1v0 nestedhap_walk_L1_p2m, rv: 0, L2_gpa:
f1000000, L1_gpa: f1000000
(XEN) nested_hap.c:234:d1v0 nestedhap_walk_L0_p2m, rv: 3, L1_gpa:
f1000000, L0_gpa: 0
...
(XEN) nested_hap.c:215:d1v0 nestedhap_walk_L1_p2m, rv: 0, L2_gpa:
f1001000, L1_gpa: f1001000
(XEN) nested_hap.c:234:d1v0 nestedhap_walk_L0_p2m, rv: 3, L1_gpa:
f1001000, L0_gpa: 0
...

There are many "rv: 3", which is NESTEDHVM_PAGEFAULT_L0_ERROR,
returned by read-only check conditon:

170    if ( access_w && p2m_is_readonly(*p2mt) )
171       goto out;

The address 0xf100000 is the VM's display memory address
(0xF1000000-0xF1FFFFFF).

Is it a I/O virtualization error or MMIO error? Any idea to fix it?


Thanks

-Xi Kangjie

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.