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

Re: [Xen-devel] [PATCH 18/18] Nested Virtualization: hap-on-hap



Hi, 

I'll start by saying that the overall design seems like a good one:
keeping a selection of shadow p2m tables around that follow
guest_p2m(host_p2m(l2gpa)), and updating them on demand.  I think it's
good to start with a simple system like this one, though we might find
that nested Xen performs poorly because of its tendency to discard ASIDs
on every vcpu context switch.

On the down side, the terminology is quite confusing.  There are a few
places where it's not clear what kind of cr3 value is meant, and I
couldn't understand this patch at all until I saw this comment:

> +/* With nested virtualization gva == nested gpa, hence we use paddr_t
> + * to not overflow. */

This is not right - the nested GPA is not a virtual address.  It's yet
another fictional physical address.  Can you please find some better
name for it?  At the moment you have functions called p2m_gva_to_gfn
that don't take a GVA and don't return a GFN.


Anyway, backing away from the detail of the code, I have some more
general design questions:

- How does memory management work in general for the nested p2ms? 
- What happens if we run out of memory?

- What's the performance difference between shadow-on-HAP and HAP-on-HAP?
- What's the difference if the nested hypervisor runs more than
  MAX_NESTEDP2M VMs? 
- How was the figure for MAX_NESTEDP2M arrived at?

- What happens when the host changes the p2m table of the L1 guest? 
  Don't we need some sort of global flush of all the nested p2ms to
  maintain isolation?  Or is it implicitly handled by existing TLB
  shootdowns?

- You seem to have duplicated a lot of the existing p2m-building code
  (type_to_flags, write_p2m_entry, next_level, &c).  Why is that?  I
  thought the whole point of patches 4, 6 and 17 was so that the nested
  p2ms could be handled with the same mechanism as normal p2ms?

Cheers,

Tim.

-- 
Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, XenServer Engineering
Citrix Systems UK Ltd.  (Company #02937203, SL9 0BG)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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