qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC v2 00/28] vSMMUv3/pSMMUv3 2 stage VFIO integration


From: Auger Eric
Subject: Re: [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
>>
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]