mbox series

[v6,0/6] Fix PCI passthrough for HVM with stubdomain

Message ID cover.4c97023e719e059ea99137f2cadea319eb87495d.1568475323.git-series.marmarek@invisiblethingslab.com (mailing list archive)
Headers show
Series Fix PCI passthrough for HVM with stubdomain | expand

Message

Marek Marczykowski-Górecki Sept. 14, 2019, 3:37 p.m. UTC
In this version, I add PHYSDEVOP_interrupt_control to allow stubdomain
enabling MSI after mapping it, and also disabling INTx beforehand. Actual
hypercall refuse to enable both of them.

Related article:
https://www.qubes-os.org/news/2017/10/18/msi-support/

Changes in v2:
 - new "xen/x86: Allow stubdom access to irq created for msi" patch
 - applied review comments from v1
Changes is v3:
 - apply suggestions by Roger
 - add PHYSDEVOP_msi_msix_set_enable
Changes in v4:
 - implement suggestions by Wei, Roger, Jan
 - plug new physdevop into XSM
Changes in v5:
 - rebase on master
 - rename to PHYSDEVOP_msi_control
 - move granting access to IRQ into create_irq
Changes in v6:
 - simplify granting IRQ access, record dm domid for cleanup
 - rename to PHYSDEVOP_interrupt_control
 - include INTx control in the hypercall

---
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Wei Liu <wl@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: George Dunlap <George.Dunlap@eu.citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien.grall@arm.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Tim Deegan <tim@xen.org>
Cc: Anthony PERARD <anthony.perard@citrix.com>
Cc: "Roger Pau Monné" <roger.pau@citrix.com>
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Cc: Brian Woods <brian.woods@amd.com>
Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>

Marek Marczykowski-Górecki (6):
  libxl: do not attach xen-pciback to HVM domain, if stubdomain is in use
  libxl: attach PCI device to qemu only after setting pciback/pcifront
  libxl: don't try to manipulate json config for stubdomain
  xen/x86: Allow stubdom access to irq created for msi.
  xen/x86: add PHYSDEVOP_interrupt_control
  tools/libxc: add wrapper for PHYSDEVOP_interrupt_control

 tools/libxc/include/xenctrl.h            |  6 ++-
 tools/libxc/xc_physdev.c                 | 15 ++++++-
 tools/libxl/libxl_pci.c                  | 63 +++++++++++++++++--------
 xen/arch/x86/hpet.c                      |  3 +-
 xen/arch/x86/irq.c                       | 51 ++++++++++++++------
 xen/arch/x86/msi.c                       | 45 ++++++++++++++++++-
 xen/arch/x86/physdev.c                   | 53 +++++++++++++++++++++-
 xen/arch/x86/x86_64/physdev.c            |  4 ++-
 xen/drivers/char/ns16550.c               |  2 +-
 xen/drivers/passthrough/amd/iommu_init.c |  2 +-
 xen/drivers/passthrough/vtd/iommu.c      |  3 +-
 xen/include/asm-x86/irq.h                |  7 ++-
 xen/include/asm-x86/msi.h                |  2 +-
 xen/include/public/physdev.h             | 23 +++++++++-
 xen/include/xlat.lst                     |  1 +-
 xen/include/xsm/dummy.h                  |  7 +++-
 xen/include/xsm/xsm.h                    |  6 ++-
 xen/xsm/dummy.c                          |  1 +-
 xen/xsm/flask/hooks.c                    | 24 ++++++++++-
 xen/xsm/flask/policy/access_vectors      |  1 +-
 20 files changed, 281 insertions(+), 38 deletions(-)

base-commit: 6c9639a72f0ca3a9430ef75f375877182281fdef