All of lore.kernel.org
 help / color / mirror / Atom feed
* about vEOI optimization
@ 2011-08-23  8:09 Tian, Kevin
  2011-08-24 10:00 ` Avi Kivity
  0 siblings, 1 reply; 4+ messages in thread
From: Tian, Kevin @ 2011-08-23  8:09 UTC (permalink / raw)
  To: kvm, 'Avi Kivity (avi@redhat.com)'; +Cc: Nakajima, Jun

Hi, Avi,

Both Eddie and Marcello once suggested vEOI optimization by skipping
heavy-weight instruction decode, which reduces vEOI overhead greatly:

http://www.mail-archive.com/kvm@vger.kernel.org/msg18619.html 
http://www.spinics.net/lists/kvm/msg36691.html

Though virtual x2apic serves similar purpose, it depends on guest OS
to support x2apic. Many Windows versions don't support x2apic though,
including Win7, Windows server before 2008 R2, etc. Given that virtualization
need support various OS versions, any chance to incorporate above vEOI
optimization in KVM as an alternative to boost performance when guest
doesn't support x2apic?

Thanks
Kevin

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: about vEOI optimization
  2011-08-23  8:09 about vEOI optimization Tian, Kevin
@ 2011-08-24 10:00 ` Avi Kivity
  2011-08-25  2:24   ` Tian, Kevin
  0 siblings, 1 reply; 4+ messages in thread
From: Avi Kivity @ 2011-08-24 10:00 UTC (permalink / raw)
  To: Tian, Kevin; +Cc: kvm, Nakajima, Jun

On 08/23/2011 11:09 AM, Tian, Kevin wrote:
> Hi, Avi,
>
> Both Eddie and Marcello once suggested vEOI optimization by skipping
> heavy-weight instruction decode, which reduces vEOI overhead greatly:
>
> http://www.mail-archive.com/kvm@vger.kernel.org/msg18619.html
> http://www.spinics.net/lists/kvm/msg36691.html
>
> Though virtual x2apic serves similar purpose, it depends on guest OS
> to support x2apic. Many Windows versions don't support x2apic though,
> including Win7, Windows server before 2008 R2, etc. Given that virtualization
> need support various OS versions, any chance to incorporate above vEOI
> optimization in KVM as an alternative to boost performance when guest
> doesn't support x2apic?
>

Yes.  There was a problem with the guest using MOVSD or STOSD to write 
the EOI; if we don't emulate, then registers don't get updated.  I guess 
we can ignore it since no sane guest will use those instructions for EOI.

Another option is the hyper-V EOI support, which can also eliminate the 
EOI exit when no additional interrupt is pending.  This can improve EOI 
performance even more.


-- 
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: about vEOI optimization
  2011-08-24 10:00 ` Avi Kivity
@ 2011-08-25  2:24   ` Tian, Kevin
  2011-08-25  4:39     ` Avi Kivity
  0 siblings, 1 reply; 4+ messages in thread
From: Tian, Kevin @ 2011-08-25  2:24 UTC (permalink / raw)
  To: Avi Kivity; +Cc: kvm, Nakajima, Jun

> From: Avi Kivity [mailto:avi@redhat.com]
> Sent: Wednesday, August 24, 2011 6:00 PM
> 
> On 08/23/2011 11:09 AM, Tian, Kevin wrote:
> > Hi, Avi,
> >
> > Both Eddie and Marcello once suggested vEOI optimization by skipping
> > heavy-weight instruction decode, which reduces vEOI overhead greatly:
> >
> > http://www.mail-archive.com/kvm@vger.kernel.org/msg18619.html
> > http://www.spinics.net/lists/kvm/msg36691.html
> >
> > Though virtual x2apic serves similar purpose, it depends on guest OS
> > to support x2apic. Many Windows versions don't support x2apic though,
> > including Win7, Windows server before 2008 R2, etc. Given that virtualization
> > need support various OS versions, any chance to incorporate above vEOI
> > optimization in KVM as an alternative to boost performance when guest
> > doesn't support x2apic?
> >
> 
> Yes.  There was a problem with the guest using MOVSD or STOSD to write
> the EOI; if we don't emulate, then registers don't get updated.  I guess
> we can ignore it since no sane guest will use those instructions for EOI.

yes, sane guests all use MOV for EOI. btw, Xen has integrated a similar
acceleration for several releases. When we're measuring 10G SR-IOV
network performance, vEOI access overhead may be up to 6%-8% based
on interrupt rate which is one factor for KVM to lag behind.

> 
> Another option is the hyper-V EOI support, which can also eliminate the
> EOI exit when no additional interrupt is pending.  This can improve EOI
> performance even more.
> 

yes, and this is an orthogonal option.

So if you agree, I'll send out an updated patch atop their work.

Thanks
Kevin

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: about vEOI optimization
  2011-08-25  2:24   ` Tian, Kevin
@ 2011-08-25  4:39     ` Avi Kivity
  0 siblings, 0 replies; 4+ messages in thread
From: Avi Kivity @ 2011-08-25  4:39 UTC (permalink / raw)
  To: Tian, Kevin; +Cc: kvm, Nakajima, Jun

On 08/25/2011 05:24 AM, Tian, Kevin wrote:
> >
> >  Another option is the hyper-V EOI support, which can also eliminate the
> >  EOI exit when no additional interrupt is pending.  This can improve EOI
> >  performance even more.
> >
>
> yes, and this is an orthogonal option.
>
> So if you agree, I'll send out an updated patch atop their work.
>
>

Thanks.

-- 
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-08-25  4:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-23  8:09 about vEOI optimization Tian, Kevin
2011-08-24 10:00 ` Avi Kivity
2011-08-25  2:24   ` Tian, Kevin
2011-08-25  4:39     ` Avi Kivity

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.