From: Jason Gunthorpe <jgg@nvidia.com>
To: Robin Murphy <robin.murphy@arm.com>
Cc: Nicolin Chen <nicolinc@nvidia.com>,
Alex Williamson <alex.williamson@redhat.com>,
"Tian, Kevin" <kevin.tian@intel.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"iommu@lists.linux.dev" <iommu@lists.linux.dev>
Subject: Re: RMRR device on non-Intel platform
Date: Wed, 26 Apr 2023 11:17:45 -0300 [thread overview]
Message-ID: <ZEkyicpaAJJ+pIXg@nvidia.com> (raw)
In-Reply-To: <5ff0d72b-a7b8-c8a9-60e5-396e7a1ef363@arm.com>
On Wed, Apr 26, 2023 at 02:53:53PM +0100, Robin Murphy wrote:
> Give QEMU a way to tell IOMMUFD to associate that 0x08080000 address with a
> given device as an MSI target. IOMMUFD then ensures that the S2 mapping
> exists from that IPA to the device's real ITS (I vaguely remember Eric had a
> patch to pre-populate an MSI cookie with specific pages, which may have been
> heading along those lines).
This isn't the main problem - already for most cases iommufd makes it
so the ITS page is at 0x8000000. We can fix qemu to also use
0x8000000 in the ACPI - it already hardwires this for the RMRR part.
We can even make the kernel return the value so it isn't hardwired,
easy stuff..
> QEMU will presumably also need a way to pass the VA down to IOMMUFD when it
> sees the guest programming the MSI (possibly it could pass the IPA at the
> same time so we don't need a distinct step to set up S2 beforehand?) - once
> the underlying physical MSI configuration comes back from the PCI layer,
> that VA just needs to be dropped in to replace the original msi_msg address.
This is the main problem. What ioctl passes the VA, and how does it plumb
down into the irq_chip..
This is where everyone gets scared, I think. There is a thick mass of
IRQ plumbing and locking between those two points
And then it only solves MSI, not the bigger picture..
> TBH at that point it may be easier to just not have a cookie in the S2
> domain at all when nesting is enabled, and just let IOMMUFD make the ITS
> mappings directly for itself.
Yes, I'd like to get there so replace can work.
Jason
next prev parent reply other threads:[~2023-04-26 14:17 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-20 6:52 RMRR device on non-Intel platform Tian, Kevin
2023-04-20 14:15 ` Alex Williamson
2023-04-20 14:19 ` Robin Murphy
2023-04-20 14:49 ` Alex Williamson
2023-04-20 16:55 ` Robin Murphy
2023-04-20 21:49 ` Alex Williamson
2023-04-21 4:10 ` Tian, Kevin
2023-04-21 11:33 ` Jason Gunthorpe
2023-04-21 11:34 ` Robin Murphy
2023-04-23 8:23 ` Tian, Kevin
2023-04-21 12:04 ` Jason Gunthorpe
2023-04-21 12:29 ` Robin Murphy
2023-04-21 12:45 ` Jason Gunthorpe
2023-04-21 17:22 ` Robin Murphy
2023-04-21 17:58 ` Jason Gunthorpe
2023-04-25 14:48 ` Robin Murphy
2023-04-25 15:58 ` Jason Gunthorpe
2023-04-26 8:39 ` Tian, Kevin
2023-04-26 12:24 ` Robin Murphy
2023-04-26 12:58 ` Jason Gunthorpe
2023-04-25 16:37 ` Nicolin Chen
2023-04-26 11:57 ` Jason Gunthorpe
2023-04-26 13:53 ` Robin Murphy
2023-04-26 14:17 ` Jason Gunthorpe [this message]
2023-04-21 13:21 ` Baolu Lu
2023-04-21 13:33 ` Jason Gunthorpe
2023-04-23 8:24 ` Tian, Kevin
2023-04-24 2:50 ` Baolu Lu
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=ZEkyicpaAJJ+pIXg@nvidia.com \
--to=jgg@nvidia.com \
--cc=alex.williamson@redhat.com \
--cc=iommu@lists.linux.dev \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=nicolinc@nvidia.com \
--cc=robin.murphy@arm.com \
/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.