kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5 v3] MSI-X mask supporting for assigned device(kernel)
@ 2010-11-04  6:15 Sheng Yang
  2010-11-04  6:15 ` [PATCH 1/5] PCI: MSI: Move MSI-X entry definition to pci_regs.h Sheng Yang
                   ` (5 more replies)
  0 siblings, 6 replies; 29+ messages in thread
From: Sheng Yang @ 2010-11-04  6:15 UTC (permalink / raw)
  To: Avi Kivity, Marcelo Tosatti; +Cc: Michael S. Tsirkin, kvm, Sheng Yang

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.

--
regards
Yang, Sheng

Sheng Yang (5):
  PCI: MSI: Move MSI-X entry definition to pci_regs.h
  PCI: Add mask bit definition for MSI-X table
  KVM: Move struct kvm_io_device to kvm_host.h
  KVM: Add kvm_get_irq_routing_entry() func
  KVM: assigned dev: MSI-X mask support

 Documentation/kvm/api.txt |   46 +++++++
 arch/x86/kvm/x86.c        |    1 +
 drivers/pci/msi.c         |    4 +-
 drivers/pci/msi.h         |    6 -
 include/linux/kvm.h       |   21 +++-
 include/linux/kvm_host.h  |   28 +++++
 include/linux/pci_regs.h  |    8 ++
 virt/kvm/assigned-dev.c   |  285 ++++++++++++++++++++++++++++++++++++++++++++-
 virt/kvm/iodev.h          |   25 +----
 virt/kvm/irq_comm.c       |   20 +++
 10 files changed, 410 insertions(+), 34 deletions(-)


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

end of thread, other threads:[~2010-11-09 14:44 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).