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] Re: Xen: Hybrid extension patchset for hypervisor

To: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Subject: Re: [Xen-devel] Re: Xen: Hybrid extension patchset for hypervisor
From: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Date: Wed, 16 Sep 2009 22:12:51 +0100
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, "Yang, Sheng" <sheng.yang@xxxxxxxxx>, "Dong, Eddie" <eddie.dong@xxxxxxxxx>, Fraser <Keir.Fraser@xxxxxxxxxxxxx>, "Nakajima, Jun" <jun.nakajima@xxxxxxxxx>, Keir
Delivery-date: Wed, 16 Sep 2009 14:13:18 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4AB12C1F.9080502@xxxxxxxx>
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>
Organization: Citrix Systems, Inc.
References: <C6D66994.14D6A%keir.fraser@xxxxxxxxxxxxx> <C6D6AEEA.14EBF%keir.fraser@xxxxxxxxxxxxx> <0B53E02A2965CE4F9ADB38B34501A3A1940C78A8@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <4AB12C1F.9080502@xxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Wed, 2009-09-16 at 19:19 +0100, Jeremy Fitzhardinge wrote: 
> On 09/16/09 09:28, Nakajima, Jun wrote:
> > Keir Fraser wrote on Wed, 16 Sep 2009 at 07:04:10:
> >   
> >>  By the way, if your intention is to speed up 64-bit guest performance,
> >> then I think you should compare with running a full PV guest in a VMCS
> >> container. That is runs in VMX non-root mode but still retains the usual
> >> full-PV interfaces. I think that would be no more code than you are
> >> proposing here, and would avoid scattering a bunch more code around the
> >> guest OS, to which there is bound to be resistance.
> >>     
> > Do you mean running the existing 64-bit PV kernel binaries in a VMCS 
> > container?
> >   
> 
> Yes.  I don't think there's any deep problem in doing that.
> 
> > Based on our data, what we would want in PV 64-bit guests are, 
> > fundamentally:
> > - have the kernel run in ring 0 (so that it can regain the performance 
> > enhancements)
> >   
> 
> That's no problem.  PV kernels don't currently assume they're running in
> any particular ring, so they'd be happy to run in ring 0 if that's how
> they're started (if there are problems, I'd consider that a bug).  We
> could then check for ring 0 and enable syscall/sysenter.

XENFEAT_supervisor_mode_kernel is supposed to enable this behaviour,
although it hasn't been actively used for several years and never in the
pvops kernel so you can bet it has bit-rotted...

> 
> > - use hardware-based MMU virtualization (e.g. EPT-based) if present
> >   
> 
> We could do that with minimal API/ABI changes by:
> 
>     * Providing an identity p2m table
>     * Changing the hypercall page to make pte writes simple memory
>       writes (no hypercalls); xen would still keep track of pinned pages
>       and trap'n'emulate on them for back-compatibility (but fast-path
>       with no validation).  We could expose the presence of HAP via
>       xen_features so that guests know they can avoid marking pagetables
>       RO, etc.
>     * Similarly, cr3 changes can be fast-pathed within the hypercall page.
>     * Whatever else I've overlooked.

Some combination of XENFEAT_writable_page_tables
XENFEAT_writable_descriptor_tables and XENFEAT_auto_translated_physmap
might be of interest for this bit.

Ian.



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