WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH 0/15] Nested Virtualization: Overview

To: Christoph Egger <Christoph.Egger@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH 0/15] Nested Virtualization: Overview
From: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Date: Thu, 3 Jun 2010 18:52:36 +0100
Cc: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
Delivery-date: Thu, 03 Jun 2010 10:53:42 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C82DA1EF.16A14%keir.fraser@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcsDPyCmOzoa4gzmQqiE/FkfwXnvzwAAVgqnAAFE/7Y=
Thread-topic: [Xen-devel] [PATCH 0/15] Nested Virtualization: Overview
User-agent: Microsoft-Entourage/12.24.0.100205
On 03/06/2010 18:16, "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx> wrote:

> Looks to me like this still unnecessarily tocuhes generic hvm code quite a
> lot. Take the CPUID patch for example. No reason for that to touch
> hvm_cpuid() when it properly belongs in the SVM-specific CPUID intercept
> routine. If you're stiull trying to peddle SVM-on-HVM -- remember noone else
> thought it was a good idea or wanted it. It won't fly.

Actually the CPUID patch was a bad one to pick out: it actually belongs in
xc_cpuid_x86.c, in the AMD-specific function therein, and it can work out
what to do based on reading the appropriate HVM_PARAM info from Xen. Which
is all nice and neat.

The other patch I actually read was #10, which modifies
hvm_interrupt_blocked(). Tbh, perhaps that one should stand: the alternative
is a SVM/VMX-specific function that calls out to the generic hvm function to
help it out (like what we do with CPUID). Maybe it's not worth it. It'd sure
be clearer if there were some nestedsvm_xxx() functions so we could read
things like:
  if ( nestedsvm_enabled(v->domain) && !nestedsvm_gif_isset(v) )
I mean, in this case, the whole concept of GIF is SVM-specific. Maybe it's
convenient to refer to it from a HVM-generic function in this context, but I
think the inherent SVM-ness of it should at least be clear.

Perhaps the rest isn't too bad really. Things like patch #4 *might* be
acceptable if Intel are going to use the hooks for their VMX-on-VMX work. If
not, I suspect some more culling of changes to generic code will be in
order.

 -- Keir
 
>  -- Keir
> 
> On 03/06/2010 17:02, "Christoph Egger" <Christoph.Egger@xxxxxxx> wrote:
> 
>> 
>> Hi!
>> 
>> This patch series brings Nested Virtualization to Xen.
>> This is the second patch series with a lot of improvements
>> and fixes thanks to Tim Deegan's review.
>> 
>> The patch series:
>> 
>> patch 01: add nestedhvm guest config option to the tools.
>>                   This is the only one patch touching the tools
>> patch 02: change local_event_delivery_* to take vcpu argument.
>>                   This prevents spurios xen crashes on guest shutdown/destroy
>>                   with nestedhvm enabled.
>> patch 03: Add data structures for nested virtualization.
>> patch 04: add nestedhvm function hooks, described in XenNestedHVM.pdf
>> patch 05: The heart of nested virtualization.
>> patch 06: Allow switch to paged real mode during vmrun emulation.
>>                   Emulate cr0 and cr4 when guest does not intercept them
>>                   (i.e. Hyper-V/Windows7)
>> patch 07: Allow guest to enable SVM in EFER
>> patch 08: Propagate SVM cpuid feature bits to guest
>> patch 09: Emulate MSRs needed for nested virtualization
>> patch 10: Handle interrupts (generic part)
>> patch 11: SVM specific implementation for nested virtualization
>> patch 12: Handle interrupts (SVM specific)
>> patch 13: The piece of code that effectively turns nested virtualization on.
>>                   Use HVM_PARAM_* this time.
>> patch 14: Change p2m infrastructure to operate with per-p2m instead
>>                   of per-domain. Combined with patch 15, this allows to run
>>                   nested guest with hap-on-hap.
>> patch 15: Handle nested pagefault to enable hap-on-hap and handle
>>                   nested guest page-table-walks to emulate instructions
>>                   the guest does not intercept (i.e. WBINVD with Windows 7).
>> 
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



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