All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Eric Auger <eric.auger@redhat.com>
Cc: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>,
	qemu-arm@nongnu.org, qemu-devel@nongnu.org,
	peter.maydell@linaro.org, jgg@nvidia.com, nicolinc@nvidia.com,
	ddutile@redhat.com, linuxarm@huawei.com, wangzhou1@hisilicon.com,
	jiangkunkun@huawei.com, jonathan.cameron@huawei.com,
	zhangfei.gao@linaro.org, Andrea Bolognani <abologna@redhat.com>
Subject: Re: [RFC PATCH 0/5] hw/arm/virt: Add support for user-creatable nested SMMUv3
Date: Thu, 30 Jan 2025 16:41:36 +0000	[thread overview]
Message-ID: <Z5urwACWPO7CiQYN@redhat.com> (raw)
In-Reply-To: <8ce24003-66ad-43da-b68a-14686758a85a@redhat.com>

On Mon, Nov 18, 2024 at 11:50:46AM +0100, Eric Auger wrote:
> Hi Shameer,
> 
> On 11/8/24 13:52, Shameer Kolothum wrote:
> > Hi,
> >
> > This series adds initial support for a user-creatable "arm-smmuv3-nested"
> > device to Qemu. At present the Qemu ARM SMMUv3 emulation is per machine
> > and cannot support multiple SMMUv3s.
> >
> > In order to support vfio-pci dev assignment with vSMMUv3, the physical
> > SMMUv3 has to be configured in nested mode. Having a pluggable
> > "arm-smmuv3-nested" device enables us to have multiple vSMMUv3 for Guests
> > running on a host with multiple physical SMMUv3s. A few benefits of doing
> > this are,
> >
> > 1. Avoid invalidation broadcast or lookup in case devices are behind
> >    multiple phys SMMUv3s.
> > 2. Makes it easy to handle phys SMMUv3s that differ in features.
> > 3. Easy to handle future requirements such as vCMDQ support.
> >
> > This is based on discussions/suggestions received for a previous RFC by
> > Nicolin here[0].
> >
> > This series includes,
> >  -Adds support for "arm-smmuv3-nested" device. At present only virt is
> >   supported and is using _plug_cb() callback to hook the sysbus mem
> >   and irq (Not sure this has any negative repercussions). Patch #3.
> >  -Provides a way to associate a pci-bus(pxb-pcie) to the above device.
> >   Patch #3.
> >  -The last patch is adding RMR support for MSI doorbell handling. Patch #5.
> >   This may change in future[1].
> >
> > This RFC is for initial discussion/test purposes only and includes patches
> > that are only relevant for adding the "arm-smmuv3-nested" support. For the
> > complete branch please find,
> > https://github.com/hisilicon/qemu/tree/private-smmuv3-nested-dev-rfc-v1
> >
> > Few ToDos to note,
> > 1. At present default-bus-bypass-iommu=on should be set when
> >    arm-smmuv3-nested dev is specified. Otherwise you may get an IORT
> >    related boot error.  Requires fixing.
> > 2. Hot adding a device is not working at the moment. Looks like pcihp irq issue.
> >    Could be a bug in IORT id mappings.
> > 3. The above branch doesn't support vSVA yet.
> >
> > Hopefully this is helpful in taking the discussion forward. Please take a
> > look and let me know.
> >
> > How to use it(Eg:):
> >
> > On a HiSilicon platform that has multiple physical SMMUv3s, the ACC ZIP VF
> > devices and HNS VF devices are behind different SMMUv3s. So for a Guest,
> > specify two smmuv3-nested devices each behind a pxb-pcie as below,
> >
> > ./qemu-system-aarch64 -machine virt,gic-version=3,default-bus-bypass-iommu=on \
> > -enable-kvm -cpu host -m 4G -smp cpus=8,maxcpus=8 \
> > -object iommufd,id=iommufd0 \
> > -bios QEMU_EFI.fd \
> > -kernel Image \
> > -device virtio-blk-device,drive=fs \
> > -drive if=none,file=rootfs.qcow2,id=fs \
> > -device pxb-pcie,id=pcie.1,bus_nr=8,bus=pcie.0 \
> > -device pcie-root-port,id=pcie.port1,bus=pcie.1,chassis=1 \
> > -device arm-smmuv3-nested,id=smmuv1,pci-bus=pcie.1 \
> > -device vfio-pci,host=0000:7d:02.1,bus=pcie.port1,iommufd=iommufd0 \
> > -device pxb-pcie,id=pcie.2,bus_nr=16,bus=pcie.0 \
> > -device pcie-root-port,id=pcie.port2,bus=pcie.2,chassis=2 \
> > -device arm-smmuv3-nested,id=smmuv2,pci-bus=pcie.2 \
> > -device vfio-pci,host=0000:75:00.1,bus=pcie.port2,iommufd=iommufd0 \
> > -append "rdinit=init console=ttyAMA0 root=/dev/vda2 rw earlycon=pl011,0x9000000" \
> > -device virtio-9p-pci,fsdev=p9fs2,mount_tag=p9,bus=pcie.0 \
> > -fsdev local,id=p9fs2,path=p9root,security_model=mapped \
> This kind of instantiation matches what I had in mind. It is
> questionable whether the legacy SMMU shouldn't be migrated to that mode
> too (instead of using a machine option setting), depending on Peter's
> feedbacks and also comments from Libvirt guys. Adding Andrea in the loop.

Yeah, looking at the current config I'm pretty surprised to see it
configured with '-machine virt,iommu=ssmuv3', where 'smmuv3' is a
type name. This effectively a back-door reinvention of the '-device'
arg.

I think it'd make more sense to deprecate the 'iommu' property
on the machine, and allow '-device ssmu3,pci-bus=pcie.0' to
associate the IOMMU with the PCI root bus, so we have consistent
approaches for all SMMU impls.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


  reply	other threads:[~2025-01-30 16:42 UTC|newest]

Thread overview: 189+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-08 12:52 [RFC PATCH 0/5] hw/arm/virt: Add support for user-creatable nested SMMUv3 Shameer Kolothum via
2024-11-08 12:52 ` Shameer Kolothum via
2024-11-08 12:52 ` [RFC PATCH 1/5] hw/arm/virt: Add an SMMU_IO_LEN macro Shameer Kolothum via
2024-11-08 12:52   ` Shameer Kolothum via
2024-11-13 16:48   ` Eric Auger
2024-11-08 12:52 ` [RFC PATCH 2/5] hw/arm/smmuv3: Add initial support for SMMUv3 Nested device Shameer Kolothum via
2024-11-08 12:52   ` Shameer Kolothum via
2024-11-13 17:12   ` Eric Auger
2024-11-13 18:05     ` Nicolin Chen
2024-11-26 18:28       ` Donald Dutile
2024-11-27 10:21         ` Shameerali Kolothum Thodi via
2024-11-27 10:21           ` Shameerali Kolothum Thodi via
2024-11-27 16:00           ` Jason Gunthorpe
2024-11-27 16:05             ` Eric Auger
2024-11-28  3:25               ` Zhangfei Gao
2024-11-28  8:06                 ` Eric Auger
2024-11-28  8:28                   ` Shameerali Kolothum Thodi via
2024-11-28  8:28                     ` Shameerali Kolothum Thodi via
2024-11-28  8:41                     ` Eric Auger
2024-11-28 12:52                     ` Jason Gunthorpe
2024-11-27 23:03             ` Donald Dutile
2024-11-28 12:51               ` Jason Gunthorpe
2024-11-28  4:29           ` Donald Dutile
2024-11-28  4:44             ` Nicolin Chen
2024-11-28 12:54               ` Jason Gunthorpe
2024-11-28 18:22                 ` Nicolin Chen
2024-12-02 18:53                 ` Donald Dutile
2024-11-28  8:17             ` Shameerali Kolothum Thodi via
2024-11-28  8:17               ` Shameerali Kolothum Thodi via
2024-11-14  8:20     ` Shameerali Kolothum Thodi via
2024-11-14  8:20       ` Shameerali Kolothum Thodi via
2024-11-14  8:41       ` Eric Auger
2024-11-14 13:27         ` Shameerali Kolothum Thodi via
2024-11-15 22:32       ` Nicolin Chen
2024-11-13 18:00   ` Eric Auger
2024-11-08 12:52 ` [RFC PATCH 3/5] hw/arm/smmuv3: Associate a pci bus with a " Shameer Kolothum via
2024-11-13 17:58   ` Eric Auger
2024-11-14  8:30     ` Shameerali Kolothum Thodi via
2024-11-14  8:30       ` Shameerali Kolothum Thodi via
2025-01-30 16:29   ` Daniel P. Berrangé
2025-01-30 18:19     ` Shameerali Kolothum Thodi via
2025-01-30 18:19       ` Shameerali Kolothum Thodi via
2024-11-08 12:52 ` [RFC PATCH 4/5] hw/arm/virt-acpi-build: Build IORT with multiple SMMU nodes Shameer Kolothum via
2024-11-18 10:01   ` Eric Auger
2024-11-18 11:44     ` Shameerali Kolothum Thodi via
2024-11-18 11:44       ` Shameerali Kolothum Thodi via
2024-11-18 13:45       ` Eric Auger
2024-11-18 15:00         ` Shameerali Kolothum Thodi via
2024-11-18 15:00           ` Shameerali Kolothum Thodi via
2024-11-18 18:09           ` Eric Auger
2024-11-20 14:16             ` Shameerali Kolothum Thodi via
2024-11-20 14:16               ` Shameerali Kolothum Thodi via
2024-11-20 16:10               ` Eric Auger
2024-11-20 16:26                 ` Shameerali Kolothum Thodi via
2024-11-20 16:26                   ` Shameerali Kolothum Thodi via
2024-11-21  9:46                   ` Shameerali Kolothum Thodi via
2024-11-21  9:46                     ` Shameerali Kolothum Thodi via
2024-12-10 20:48                     ` Nicolin Chen
2024-12-11 15:21                       ` Shameerali Kolothum Thodi via
2024-12-11 15:21                         ` Shameerali Kolothum Thodi via
2024-12-13  0:28                         ` Nicolin Chen
2024-11-08 12:52 ` [RFC PATCH 5/5] hw/arm/virt-acpi-build: Add IORT RMR regions to handle MSI nested binding Shameer Kolothum via
2024-11-13 18:31   ` Nicolin Chen
2024-11-14  8:48     ` Shameerali Kolothum Thodi via
2024-11-14  8:48       ` Shameerali Kolothum Thodi via
2024-11-14 10:41       ` Eric Auger
2024-11-15 22:12         ` Nicolin Chen
2024-12-10 23:01   ` Nicolin Chen
2024-12-11  0:48     ` Jason Gunthorpe
2024-12-11  1:28       ` Nicolin Chen
2024-12-11 13:11         ` Jason Gunthorpe
2024-12-11 17:20           ` Nicolin Chen
2024-12-11 18:01             ` Jason Gunthorpe
2024-11-12 22:59 ` [RFC PATCH 0/5] hw/arm/virt: Add support for user-creatable nested SMMUv3 Nicolin Chen
2024-11-14  7:56   ` Shameerali Kolothum Thodi via
2024-11-14  7:56     ` Shameerali Kolothum Thodi via
2024-11-20 23:59   ` Nathan Chen
2024-11-21 10:12     ` Shameerali Kolothum Thodi via
2024-11-22  1:41       ` Nathan Chen
2024-11-22 17:38         ` Shameerali Kolothum Thodi via
2024-11-22 18:53           ` Nathan Chen
2025-02-04 14:00             ` Eric Auger
2024-12-13 11:58           ` Daniel P. Berrangé
2024-12-13 12:43             ` Jason Gunthorpe
2024-12-12 23:54     ` Nathan Chen
2024-12-13  1:01       ` Nathan Chen
2024-12-16  9:31         ` Shameerali Kolothum Thodi via
2024-12-16  9:31           ` Shameerali Kolothum Thodi via
2025-01-25  2:43           ` Nathan Chen
2025-01-27 15:26             ` Shameerali Kolothum Thodi via
2025-01-27 15:26               ` Shameerali Kolothum Thodi via
2025-01-27 23:35               ` Nathan Chen
2024-11-13 16:16 ` Mostafa Saleh
2024-11-14  8:01   ` Shameerali Kolothum Thodi via
2024-11-14  8:01     ` Shameerali Kolothum Thodi via
2024-11-14 11:49     ` Mostafa Saleh
2024-11-13 21:42 ` Nicolin Chen
2024-11-14  9:11   ` Shameerali Kolothum Thodi via
2024-11-14  9:11     ` Shameerali Kolothum Thodi via
2024-11-18 10:50 ` Eric Auger
2025-01-30 16:41   ` Daniel P. Berrangé [this message]
2024-12-13 12:00 ` Daniel P. Berrangé
2024-12-13 12:46   ` Jason Gunthorpe
2024-12-13 13:19     ` Daniel P. Berrangé
2024-12-16  9:38       ` Shameerali Kolothum Thodi via
2024-12-17 18:36       ` Donald Dutile
2024-12-13 13:33     ` Peter Maydell
2024-12-16 10:01       ` Shameerali Kolothum Thodi via
2024-12-16 10:01         ` Shameerali Kolothum Thodi via
2025-01-09  4:45         ` Nicolin Chen
2025-01-11  4:05           ` Donald Dutile
2025-01-23  4:10             ` Nicolin Chen
2025-01-23  8:28               ` Shameerali Kolothum Thodi via
2025-01-23  8:28                 ` Shameerali Kolothum Thodi via
2025-01-23  8:40                 ` Nicolin Chen
2025-01-23 11:07                 ` Duan, Zhenzhong
2025-02-17  9:17                   ` Duan, Zhenzhong
2025-02-18  6:52                     ` Shameerali Kolothum Thodi via
2025-03-06 17:59                       ` Eric Auger
2025-03-06 18:27                         ` Shameerali Kolothum Thodi via
2025-03-06 18:27                           ` Shameerali Kolothum Thodi via
2025-03-06 18:40                           ` Eric Auger
2025-01-31 16:54           ` Eric Auger
2025-02-03 18:50             ` Nicolin Chen
2025-02-04 17:49               ` Eric Auger
2025-02-05  0:08                 ` Nicolin Chen
2025-02-05 10:43                   ` Shameerali Kolothum Thodi via
2025-02-05 10:43                     ` Shameerali Kolothum Thodi via
2025-02-05 12:35                   ` Eric Auger
2025-02-06 10:34                   ` Shameerali Kolothum Thodi via
2025-02-06 10:34                     ` Shameerali Kolothum Thodi via
2025-02-06 18:58                     ` Nicolin Chen
2025-03-03 15:21                       ` Shameerali Kolothum Thodi via
2025-03-03 15:21                         ` Shameerali Kolothum Thodi via
2025-03-03 17:04                         ` Nicolin Chen
2025-03-04  9:30                           ` Shameerali Kolothum Thodi via
2025-03-04  9:30                             ` Shameerali Kolothum Thodi via
2025-01-30 16:00 ` Daniel P. Berrangé
2025-01-30 18:09   ` Shameerali Kolothum Thodi via
2025-01-30 18:09     ` Shameerali Kolothum Thodi via
2025-01-31  9:33     ` Shameerali Kolothum Thodi via
2025-01-31  9:33       ` Shameerali Kolothum Thodi via
2025-01-31 10:07       ` Eric Auger
2025-01-31 14:24       ` Jason Gunthorpe
2025-01-31 14:39         ` Shameerali Kolothum Thodi via
2025-01-31 14:39           ` Shameerali Kolothum Thodi via
2025-01-31 14:54           ` Jason Gunthorpe
2025-01-31 15:23             ` Shameerali Kolothum Thodi via
2025-01-31 15:23               ` Shameerali Kolothum Thodi via
2025-01-31 16:08               ` Eric Auger
2025-02-05 20:53                 ` Nathan Chen
2025-02-06  8:54                   ` Daniel P. Berrangé
2025-02-06  8:53                 ` Daniel P. Berrangé
2025-02-06 16:44                   ` Eric Auger
2025-01-31 21:41     ` Daniel P. Berrangé
2025-02-06 10:02       ` Shameerali Kolothum Thodi via
2025-02-06 10:02         ` Shameerali Kolothum Thodi via
2025-02-06 10:37         ` Daniel P. Berrangé
2025-02-06 13:51           ` Shameerali Kolothum Thodi via
2025-02-06 13:51             ` Shameerali Kolothum Thodi via
2025-02-06 14:46             ` Daniel P. Berrangé
2025-02-06 15:07               ` Shameerali Kolothum Thodi via
2025-02-06 15:07                 ` Shameerali Kolothum Thodi via
2025-02-06 17:02                 ` Jason Gunthorpe
2025-02-06 17:10                   ` Daniel P. Berrangé
2025-02-06 17:46                     ` Jason Gunthorpe
2025-02-06 17:54                       ` Daniel P. Berrangé
2025-02-06 17:58                         ` Jason Gunthorpe
2025-02-06 18:04                           ` Shameerali Kolothum Thodi via
2025-02-06 18:04                             ` Shameerali Kolothum Thodi via
2025-02-06 18:13                             ` Jason Gunthorpe
2025-02-06 18:18                               ` Shameerali Kolothum Thodi via
2025-02-06 18:18                                 ` Shameerali Kolothum Thodi via
2025-02-06 18:22                                 ` Jason Gunthorpe
2025-02-06 20:33                                   ` Nicolin Chen
2025-02-06 20:38                                     ` Jason Gunthorpe
2025-02-06 20:48                                       ` Nicolin Chen
2025-02-06 21:11                                         ` Jason Gunthorpe
2025-02-06 22:46                                           ` Nicolin Chen
2025-02-07  0:08                                             ` Jason Gunthorpe
2025-02-07 10:21                                     ` Shameerali Kolothum Thodi via
2025-02-07 10:21                                       ` Shameerali Kolothum Thodi via
2025-02-07 10:31                                       ` Daniel P. Berrangé
2025-02-07 12:21                                         ` Shameerali Kolothum Thodi via
2025-02-07 12:21                                           ` Shameerali Kolothum Thodi via
2025-02-07 12:53                                           ` Jason Gunthorpe
2025-02-06 18:18                           ` Daniel P. Berrangé
2025-02-06 17:57                       ` Shameerali Kolothum Thodi via
2025-02-06 17:59                         ` Jason Gunthorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z5urwACWPO7CiQYN@redhat.com \
    --to=berrange@redhat.com \
    --cc=abologna@redhat.com \
    --cc=ddutile@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=jgg@nvidia.com \
    --cc=jiangkunkun@huawei.com \
    --cc=jonathan.cameron@huawei.com \
    --cc=linuxarm@huawei.com \
    --cc=nicolinc@nvidia.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=wangzhou1@hisilicon.com \
    --cc=zhangfei.gao@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.