|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v4 0/5] Implement SR-IOV support for PVH
This series enables support for PCI SR-IOV capability for PVH domains. It allows Dom0 to enable and use SR-IOV virtual functions and for these functions to be passed to guests. To achieve this, add handlers for SRIOV_CONTROL registers and simplified handlers for VF headers. Dom0 enables SR-IOV; Xen then discovers the VFs itself, terminating config space accesses to them for 100ms as the spec permits, and adding each VF on the first access past that window. No hypercall from dom0 is involved. Core functionality is based on previous work[1]. Tested on R-Car Spider board with Samsung NVMe SSD Controller 980 and Intel X550T ethernet card. [1]: https://lore.kernel.org/xen-devel/20180717094830.54806-1-roger.pau@xxxxxxxxxx/ v3->v4: * rework the series for VF discovery in Xen * squash export patches * drop "vpci: Use pervcpu ranges for BAR mapping"; rangesets are now allocated per mapping task * split the non-functional churn into "vpci: use a local variable for the BAR rangeset" * fold the documentation patch into "add SR-IOV support for PVH Dom0" * see individual patches v2->v3: * rework the series for VF discovery by Dom0 * drop pci/iommu: Check that IOMMU supports removing devices, see [2] * drop vpci: add a wait operation to the vpci vcpu pending actions * add vpci: allow queueing of mapping operations * minor changes in individual patches [2]: https://patchew.org/Xen/a59c2da0d4c72deb42950e9a8e3982fbdee60668.1775555766.git.mykyta._5Fpoturai@xxxxxxxx/ v1->v2: * rework the series for VF discovery in Xen * separate doc changes into the last patch Mykyta Poturai (1): vpci: use a local variable for the BAR rangeset Stewart Hildebrand (4): vpci: Export functions required for SR-IOV support vpci: allow queueing of mapping operations vpci: add SR-IOV support for PVH Dom0 vpci: add SR-IOV support for DomUs CHANGELOG.md | 1 + SUPPORT.md | 2 - tools/tests/vpci/emul.h | 4 + xen/common/domain.c | 2 + xen/drivers/passthrough/pci.c | 44 +++ xen/drivers/pci/physdev.c | 16 +- xen/drivers/vpci/Makefile | 1 + xen/drivers/vpci/header.c | 309 +++++++++++------- xen/drivers/vpci/private.h | 24 ++ xen/drivers/vpci/sriov.c | 568 ++++++++++++++++++++++++++++++++++ xen/drivers/vpci/vpci.c | 24 +- xen/include/xen/pci.h | 3 + xen/include/xen/vpci.h | 45 ++- 13 files changed, 909 insertions(+), 134 deletions(-) create mode 100644 xen/drivers/vpci/sriov.c -- 2.55.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |