[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: |
Auger Eric |
Subject: |
Re: [Qemu-arm] [Qemu-devel] [RFC v2 00/28] vSMMUv3/pSMMUv3 2 stage VFIO integration |
Date: |
Mon, 26 Nov 2018 10:56:16 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 |
Hi Shameer,
On 11/23/18 5:28 PM, Shameerali Kolothum Thodi wrote:
>
>
>> -----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?
Thank you for reporting. You are not missing anything obvious: I can
reproduce the issue as well on one of my platform. I will debug and come
back to you as soon as possible.
Thanks
Eric
>
> 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
>>
>
>