From: Jason Gunthorpe <jgg@nvidia.com>
To: Andrew Jones <andrew.jones@oss.qualcomm.com>
Cc: linux-riscv@lists.infradead.org, iommu@lists.linux.dev,
linux-kernel@vger.kernel.org, tomasz.jeznach@linux.dev,
tjeznach@rivosinc.com, joro@8bytes.org, will@kernel.org,
robin.murphy@arm.com, pjw@kernel.org, palmer@dabbelt.com,
anup@brainfault.org, tglx@kernel.org, kevin.tian@intel.com,
fangyu.yu@linux.alibaba.com
Subject: Re: [PATCH v4 02/21] iommufd: Add iommufd_sw_map_msi()
Date: Fri, 21 Aug 2026 11:00:33 -0300 [thread overview]
Message-ID: <20260821140033.GH244917@nvidia.com> (raw)
In-Reply-To: <zygm4qm3fjv57nsgcectwikfa3cdnidxnhv55nxv4b6l2kllrs@dt36j4p3zhoa>
On Fri, Aug 21, 2026 at 03:47:17PM +0200, Andrew Jones wrote:
> On Fri, Aug 21, 2026 at 09:02:04AM -0300, Jason Gunthorpe wrote:
> > On Fri, Aug 21, 2026 at 01:07:03PM +0200, Andrew Jones wrote:
> >
> > > > What I rather expected was for riscv to have a PA window that is very
> > > > big and not just one page, eg adjust iommu_dma_prepare_msi() so you
> > > > can pass in the entire PA space that you need for the affinity
> > > > changes. Maybe this is a list of phys_addr_t ?
> > >
> > > That's more or less what this series does.
> >
> > But it does it in a completely different way, and I'm struggling to
> > see any justification for this.
> >
> > Again, just pass your list of PAs to iommu_dma_prepare_msi() from the
> > irq domain seems like the easiest and most ARM aligned thing.
> >
> > When you need a new IOVA for an affinity change the PA's are already
> > mapped a simple offset calculation is that is needed.
>
> Ah, I see what I missed. The proposed batched API would guarantee a
> contiguous IOVA range, so the descriptor could cache the IOVA base and
> then the riscv IR compose-msi-msg could simply compute its target off
> that base. That would indeed eliminate msi_iova[] and all its complexity.
Yeah, that is pretty simple like that
Then you just need to teach everything downstream to have a list of
phys not a single phys and thats an easy to understand delta
> ARM calls iommu_dma_prepare_msi() from ITS since there is no SMMU
> irqdomain and ITS owns the MSI target.
Right SMMU is not involved in interrupt translation
> This series adds a RISC-V IOMMU IR irqdomain to replace the IMSIC PA
> with the corresponding IOVA, so the IR domain's alloc callback is
> the right place to create the mappings through common
> DMA-IOMMU/iommufd code.
But RISC-V IOMMU is also not involved in interrupt translation. Beyond
it could remap the PAs which represent the CPUs, but you are not using
it that way since it is statically setup.
So I'm not sure why the iommu gets an IR? Isn't it the same as ARM
where the IMSIC itself just has a wack of PAs it needs to access so it
calls iommu_dma_prepare_msi() to do it?
Jason
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2026-08-21 14:01 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-20 21:41 [PATCH v4 00/21] iommu/riscv: Enable MSI remapping, IOMMU_DMA and VFIO Andrew Jones
2026-08-20 21:41 ` [PATCH v4 01/21] iommufd: Convert struct iommufd_sw_msi_maps to a growable bitmap Andrew Jones
2026-08-20 21:41 ` [PATCH v4 02/21] iommufd: Add iommufd_sw_map_msi() Andrew Jones
2026-08-20 22:09 ` Jason Gunthorpe
2026-08-21 11:07 ` Andrew Jones
2026-08-21 12:02 ` Jason Gunthorpe
2026-08-21 13:47 ` Andrew Jones
2026-08-21 14:00 ` Jason Gunthorpe [this message]
2026-08-21 14:23 ` Andrew Jones
2026-08-21 14:31 ` Jason Gunthorpe
2026-08-20 21:41 ` [PATCH v4 03/21] iommu/dma: Add iommu_dma_sw_map_msi() Andrew Jones
2026-08-20 21:41 ` [PATCH v4 04/21] iommu/dma: Add iommu_dma_map_msi() Andrew Jones
2026-08-20 21:41 ` [PATCH v4 05/21] iommu: Document MSI mapping during domain replacement Andrew Jones
2026-08-20 21:41 ` [PATCH v4 06/21] genirq/msi: Provide DOMAIN_BUS_MSI_REMAP Andrew Jones
2026-08-20 21:41 ` [PATCH v4 07/21] irqchip/riscv-imsic: Compose MSI updates through the hierarchy Andrew Jones
2026-08-20 21:41 ` [PATCH v4 08/21] iommu/riscv: Add IRQ domain for interrupt remapping Andrew Jones
2026-08-20 21:41 ` [PATCH v4 09/21] iommu/riscv: Refresh platform MSI domain before IR setup Andrew Jones
2026-08-20 21:41 ` [PATCH v4 10/21] iommu/riscv: Prepare info->domain for concurrent RCU read access Andrew Jones
2026-08-20 21:41 ` [PATCH v4 11/21] iommu/riscv: Reserve an MSI IOVA window for iommufd Andrew Jones
2026-08-20 21:41 ` [PATCH v4 12/21] iommu/riscv: Pre-map IMSIC MSI targets Andrew Jones
2026-08-20 21:41 ` [PATCH v4 13/21] iommu/riscv: Preserve MSI IOVA state across domain replacement Andrew Jones
2026-08-20 21:52 ` Jason Gunthorpe
2026-08-21 11:14 ` Andrew Jones
2026-08-21 13:22 ` Jason Gunthorpe
2026-08-21 13:56 ` Andrew Jones
2026-08-20 21:41 ` [PATCH v4 14/21] iommu/riscv: Gate direct identity boundary switches with live MSIs Andrew Jones
2026-08-20 21:41 ` [PATCH v4 15/21] iommu/riscv: Remap IMSIC targets during MSI composition Andrew Jones
2026-08-20 21:41 ` [PATCH v4 16/21] iommu/dma: Enable IOMMU_DMA for 64-bit RISC-V Andrew Jones
2026-08-20 21:41 ` [PATCH v4 17/21] iommu/riscv: Report cache coherency capability Andrew Jones
2026-08-20 21:47 ` Jason Gunthorpe
2026-08-21 11:15 ` Andrew Jones
2026-08-20 21:41 ` [PATCH v4 18/21] vfio: enable IOMMU_TYPE1 for RISC-V Andrew Jones
2026-08-20 21:41 ` [PATCH v4 19/21] RISC-V: KVM: Enable KVM_VFIO interfaces on RISC-V arch Andrew Jones
2026-08-20 21:41 ` [PATCH v4 20/21] riscv: defconfig: Enable IOMMUFD and VFIO Andrew Jones
2026-08-20 21:41 ` [PATCH v4 21/21] selftests/vfio: Allow building on RISC-V Andrew Jones
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=20260821140033.GH244917@nvidia.com \
--to=jgg@nvidia.com \
--cc=andrew.jones@oss.qualcomm.com \
--cc=anup@brainfault.org \
--cc=fangyu.yu@linux.alibaba.com \
--cc=iommu@lists.linux.dev \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=palmer@dabbelt.com \
--cc=pjw@kernel.org \
--cc=robin.murphy@arm.com \
--cc=tglx@kernel.org \
--cc=tjeznach@rivosinc.com \
--cc=tomasz.jeznach@linux.dev \
--cc=will@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox