All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sheng Yang <sheng@linux.intel.com>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Avi Kivity <avi@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	kvm@vger.kernel.org
Subject: Re: [PATCH 0/5 v3] MSI-X mask supporting for assigned device(kernel)
Date: Mon, 8 Nov 2010 08:51:01 +0800	[thread overview]
Message-ID: <201011080851.01546.sheng@linux.intel.com> (raw)
In-Reply-To: <20101106002715.GB410@amt.cnet>

On Saturday 06 November 2010 08:27:15 Marcelo Tosatti wrote:
> On Thu, Nov 04, 2010 at 02:15:16PM +0800, Sheng Yang wrote:
> > Here is the latest series of MSI-X mask supporting patches.
> > 
> > The bigest change from last version is, in order to reduce the
> > complexity, I moved all mask bit operation to kernel, including disabled
> > entries. This addressed two concerns:
> > 1. KVM and QEmu each own a part of mask bit operation.
> > 2. QEmu need accessing the real hardware to get the mask bit information.
> > 
> > So now QEmu have to use kernel API to get mask bit information. Though it
> > would be slower than direct accessing the real hardware's MMIO, the
> > direct accessing is unacceptable beacuse in fact the host OS own the
> > device. The host OS can access the device without notifying the
> > guest(and don't need to do so). Userspace shouldn't penetrate the host
> > OS layer to directly operate the real hardware, otherwise would cause
> > guest confusion.
> > 
> > Also I discard the userspace mask operation as well, after showed the
> > performance number.
> > 
> > This version also removed the capability enabling mechanism. Because we
> > want to use the struct kvm_assigned_msix_entry with new IOCTL, so there
> > is no compatible issue.
> > 
> > Please review. And I would run more test with current patch. So far so
> > good.
> 
> It would be good to know where the performance issue is with the entire
> implementation of mask bit in QEMU.
> 
> http://www.mail-archive.com/kvm@vger.kernel.org/msg42652.html.
> 
> All you mentioned in the past was "there was high CPU utilization when
> running in QEMU" and decided to start implementing in kernel. But AFAICS
> you did not really look into where the problem was...

We've analysed the same issue in Xen, and believed it was caused by exiting to the 
QEmu everytime when guest want to access the mask bit(and some specific kernel want 
to do this desperately). So we provided the patches to Xen, and it worked very 
well. 

The cost of exiting to the userspace in KVM is much smaller than Xen side, but it 
still much slower than in-kernel. I've shown the performance data of kernel and 
userspace here:

http://ns.spinics.net/lists/kvm/msg43712.html

We can easily get 20% performance gain using kernel.

--
regards
Yang, Sheng

      reply	other threads:[~2010-11-08  0:50 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-04  6:15 [PATCH 0/5 v3] MSI-X mask supporting for assigned device(kernel) Sheng Yang
2010-11-04  6:15 ` [PATCH 1/5] PCI: MSI: Move MSI-X entry definition to pci_regs.h Sheng Yang
2010-11-05  0:43   ` Hidetoshi Seto
2010-11-04  6:15 ` [PATCH 2/5] PCI: Add mask bit definition for MSI-X table Sheng Yang
2010-11-04  9:50   ` Michael S. Tsirkin
2010-11-05  2:48     ` Sheng Yang
2010-11-05  0:48   ` Hidetoshi Seto
2010-11-05  2:49     ` Sheng Yang
2010-11-04  6:15 ` [PATCH 3/5] KVM: Move struct kvm_io_device to kvm_host.h Sheng Yang
2010-11-04  6:15 ` [PATCH 4/5] KVM: Add kvm_get_irq_routing_entry() func Sheng Yang
2010-11-04  6:15 ` [PATCH 5/5] KVM: assigned dev: MSI-X mask support Sheng Yang
2010-11-04 10:43   ` Michael S. Tsirkin
2010-11-05  2:44     ` Sheng Yang
2010-11-05  4:20       ` Sheng Yang
2010-11-05  7:16         ` Sheng Yang
2010-11-05  8:51           ` Michael S. Tsirkin
2010-11-05 10:54             ` Sheng Yang
2010-11-05  8:43       ` Michael S. Tsirkin
2010-11-05 10:53         ` Sheng Yang
2010-11-05 12:01           ` Sheng Yang
2010-11-05 13:29             ` Michael S. Tsirkin
2010-11-05 13:27           ` Michael S. Tsirkin
2010-11-08  3:18             ` Sheng Yang
2010-11-08  6:42               ` Michael S. Tsirkin
2010-11-06  0:24           ` Marcelo Tosatti
2010-11-08  5:41             ` Sheng Yang
2010-11-09 14:08               ` Marcelo Tosatti
2010-11-06  0:27 ` [PATCH 0/5 v3] MSI-X mask supporting for assigned device(kernel) Marcelo Tosatti
2010-11-08  0:51   ` Sheng Yang [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201011080851.01546.sheng@linux.intel.com \
    --to=sheng@linux.intel.com \
    --cc=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=mtosatti@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.