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

Re: [Xen-devel] Xen, Windows 2003 and APIC



On Fri, Dec 05, 2008 at 05:06:28PM +0000, George Dunlap wrote:
> On Fri, Dec 5, 2008 at 4:57 PM, Gary Pennington <Gary.Pennington@xxxxxxx> 
> wrote:
> > However, what I was mostly curious about was why specifying apic when the
> > guest was created made so much different to performance.
> 
> Because of how the interrupt blocking works with APIC vs non-apic.
> For APIC (on Intel boxes), you set the level of interrupts that you
> want to receive (called the TPR, or Task Priority Register) by writing
> to an MMIO register.  Under Xen, this means a vmexit every time the
> TPR is written.  w2k3sp0 writes to the TPR every time the priority
> changes, which happens a lot.  Each write causes a
> vmexit/update/vmenter cycle, which is pretty expensive.
> 
> w2k3sp2 has a technique called "lazy TPR", where it manages to avoid
> the vast majority of TPR writes.  This results in a much lower
> overhead, probably on bare hardware as well, but especially in
> HVM-virtualized environments.
> 
> If you take a xen trace of w2k3sp0, you will see a ton of MMIO writes
> to ffe00080; that's the TPR register (if I recall correctly from the
> top of my head).  xenalyze (Coming Soon[tm]) would look at the trace
> and tell you that you were spending a non-negligible percentage of
> your time handling MMIO writes to the TPR register.
> 
> If you disable the APIC, the processor uses other methods of setting
> interrupt levels (don't know these off the top of my head) which are
> virtualized as a part of the HVM spec, and are therefore don't involve
> the hyperivsor at all.  As Keir said, newer Intel hardware has TPR
> virtualization, so even with the APIC accessing the TPR doesn't
> involve the hypervisor.
> 

Thanks very much for the explanation. That makes it clear(ish) why
specifying APIC alters performance so much. Now what I need to understand
is why certain Windows variants default to specify APIC and others don't...

It seems like this area is a bit of a minefield and it would be good to get
authoritative data on how to specify apic/acpi for windows guests, depending
on hardware available and flavour of windows...

Gary

>  -George
> 
> >
> > Gary
> >
> >> Hopefully, sometime in the next few weeks, I'll be able to release my
> >> 'xenalyze' tool, which will help a lot with analyzing what's really
> >> going on with these kinds of workloads.
> >>
> >>  -George
> >>
> >> On Fri, Dec 5, 2008 at 2:45 PM, Keir Fraser <keir.fraser@xxxxxxxxxxxxx> 
> >> wrote:
> >> > On 05/12/2008 14:03, "Gary Pennington" <Gary.Pennington@xxxxxxx> wrote:
> >> >
> >> >> My next question is: What is really happening when APIC is specified for
> >> >> a windows guest and why does performance vary so much according to 
> >> >> whether
> >> >> it's specified or not?
> >> >
> >> > Older Windows kernels update the APIC TPR a lot, and unless you have a 
> >> > very
> >> > modern Intel processor every one of those TPR updates causes a vmexit.
> >> >
> >> > Modern Windows (including possibly latest w2k3 service pack, but I'm not
> >> > totally certain) includes lazy TPR, which gets rid of the vast majority 
> >> > of
> >> > TPR updates, and hence will go much faster.
> >> >
> >> >  -- Keir
> >> >
> >> >
> >> >
> >> > _______________________________________________
> >> > 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
> >
> > --
> > Gary Pennington
> > Solaris Core OS
> > Sun Microsystems
> > Gary.Pennington@xxxxxxx
> >
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xen-devel
> >

-- 
Gary Pennington
Solaris Core OS
Sun Microsystems
Gary.Pennington@xxxxxxx

_______________________________________________
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®.