[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [Qemu-devel] [RFC v2 00/28] vSMMUv3/pSMMUv3 2 stage VFIO
From: |
Shameerali Kolothum Thodi |
Subject: |
Re: [Qemu-arm] [Qemu-devel] [RFC v2 00/28] vSMMUv3/pSMMUv3 2 stage VFIO integration |
Date: |
Fri, 23 Nov 2018 16:28:13 +0000 |
> -----Original Message-----
> From: Qemu-devel [mailto:qemu-devel-
> address@hidden On Behalf Of
> Eric Auger
> Sent: 21 September 2018 09:18
> To: address@hidden; address@hidden; qemu-
> address@hidden; address@hidden; address@hidden
> Cc: address@hidden; address@hidden; address@hidden; jean-
> address@hidden; address@hidden; address@hidden
> Subject: [Qemu-devel] [RFC v2 00/28] vSMMUv3/pSMMUv3 2 stage VFIO
> integration
>
[...]
> This series can be found at:
> https://github.com/eauger/qemu/tree/v3.0.0_2stage-rfc-v2
>
> Testing:
> - For testing use my kernel branch
> https://github.com/eauger/linux/tree/v4.19-rc4-2stage-rfc-v2 [1]
> - Tested on Qualcomm HW with 1/2 assigned e1000e NICs. Hotplug
> was also tested OK.
> - Known limitation:
> - currently sending an NH_ASID command instead of NH_VA
> upon guest NH_VA. This may cause important perf downgrade.
> Propagating NH_VA does not work at the moment.
Hi Eric,
I had a go with this RFC on one of our platform and noted that when the Guest
boots with ACPI , the ping doesn't work with the assigned ixgbevf NIC though
the network device gets detected and added to the iommu group.
It's all fine when I boot the Guest with DT. Have you tested this with ACPI yet
or
am I missing anything obvious here?
Please let me know.
Thanks,
Shameer
> References:
> - [1] [RFC v2 00/20] SMMUv3 Nested Stage Setup
> (https://lkml.org/lkml/2018/9/18/1087)
> The User API still is unstable and under discussion.
>
> History:
> v1 -> v2:
> - Fixed dual assignment (asid now correctly propagated on TLB invalidations)
> - Integrated fault reporting
>
> Next Steps:
> - Mature the user API with people involved in SVA work (KVM forum may be a
> good opportunity to meet)
> - Submit the IOMMU cfg notifier changes and some VFIO changes separately,
> to
> progress independently on the kernel dependency
>
> Eric Auger (28):
> hw/arm/smmu-common: Fix the name of the iommu memory regions
> hw/arm/smmuv3: fix eventq recording and IRQ triggerring
> update-linux-headers: Import iommu.h
> linux-headers: Partial header update
> memory: add IOMMU_ATTR_VFIO_NESTED IOMMU memory region attribute
> hw/arm/smmuv3: Implement get_attr API to report
> IOMMU_ATTR_VFIO_NESTED
> hw/vfio/common: Refactor container initialization
> hw/vfio/common: Force nested if iommu requires it
> memory: Introduce IOMMUIOLTBNotifier
> memory: rename memory_region notify_iommu, notify_one
> memory: Add IOMMUConfigNotifier
> memory: Add arch_id in IOTLBEntry
> hw/arm/smmuv3: Store s1ctrptr in translation config data
> hw/arm/smmuv3: Implement dummy replay
> hw/arm/smmuv3: Notify on config changes
> hw/arm/smmuv3: Fill the IOTLBEntry arch_id on NH_VA invalidation
> hw/vfio/common: Introduce vfio_alloc_guest_iommu helper
> hw/vfio/common: Introduce vfio_dma_(un)map_ram_section helpers
> hw/vfio/common: Register specific nested mode notifiers and
> memory_listener
> hw/vfio/common: Register MAP notifier for MSI binding
> target/arm/kvm: Notifies IOMMU on MSI stage 1 binding
> vfio/pci: Always set up MSI route before enabling vectors
> hw/arm/smmuv3: Remove warning about unsupported MAP notifiers
> memory: Introduce IOMMU_NOTIFIER_INIT_CFG IOMMU Config Notifier
> memory: Introduce IOMMU Memory Region inject_faults API
> hw/vfio/common: Handle fault_handler
> hw/arm/smmuv3: Init fault handling
> hw/arm/smmuv3: Implement fault injection
>
> exec.c | 12 +-
> hw/arm/smmu-common.c | 12 +-
> hw/arm/smmuv3-internal.h | 26 +-
> hw/arm/smmuv3.c | 189 +++++++--
> hw/i386/intel_iommu.c | 16 +-
> hw/misc/tz-mpc.c | 8 +-
> hw/ppc/spapr_iommu.c | 2 +-
> hw/s390x/s390-pci-inst.c | 4 +-
> hw/vfio/common.c | 666 ++++++++++++++++++++++++--------
> hw/vfio/pci.c | 1 +
> hw/vfio/trace-events | 4 +-
> hw/virtio/vhost.c | 12 +-
> include/exec/memory.h | 140 +++++--
> include/hw/arm/smmu-common.h | 1 +
> include/hw/vfio/vfio-common.h | 1 +
> linux-headers/linux/iommu.h | 237 ++++++++++++
> linux-headers/linux/vfio.h | 48 +++
> memory.c | 66 +++-
> scripts/update-linux-headers.sh | 2 +-
> target/arm/kvm.c | 46 +--
> 20 files changed, 1206 insertions(+), 287 deletions(-)
> create mode 100644 linux-headers/linux/iommu.h
>
> --
> 2.17.1
>
- Re: [Qemu-arm] [Qemu-devel] [RFC v2 00/28] vSMMUv3/pSMMUv3 2 stage VFIO integration,
Shameerali Kolothum Thodi <=