From: Jason Gunthorpe <jgg@ziepe.ca>
To: Shyam Saini <shyamsaini@linux.microsoft.com>
Cc: Jacob Pan <jacob.pan@linux.microsoft.com>,
iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
devicetree@vger.kernel.org, virtualization@lists.linux.dev,
will@kernel.org, eric.auger@redhat.com, code@tyhicks.com,
eahariha@linux.microsoft.com, vijayb@linux.microsoft.com
Subject: Re: [PATCH v2 0/3] arm-smmu: select suitable IOVA
Date: Tue, 27 May 2025 21:04:25 -0300 [thread overview]
Message-ID: <20250528000425.GC146260@ziepe.ca> (raw)
In-Reply-To: <20250527205428.GA14019@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net>
On Tue, May 27, 2025 at 01:54:28PM -0700, Shyam Saini wrote:
> > The above is the only place that creates a IOMMU_RESV_SW_MSI so it is
> > definately called and used, right? If not where does your
> > IOMMU_RESV_SW_MSI come from?
>
> code tracing and printks in that code path suggests iommu_dma_get_resv_regions()
> called by vfio-pci driver,
Yes, I know it is, that is how it setups the SW_MSI.
> > As above, I've asked a few times now if your resv_regions() is
> > correct, meaning there is a reserved range covering the address space
> > that doesn't have working translation. That means
> > iommu_get_resv_regions() returns such a range.
>
> sorry about missing that, i see msi iova being reserved:
>
> cat /sys/kernel/iommu_groups/*/reserved_regions
> 0x0000000008000000 0x00000000080fffff msi
> 0x0000000008000000 0x00000000080fffff msi
> 0x0000000008000000 0x00000000080fffff msi
> 0x0000000008000000 0x00000000080fffff msi
> [output trimmed]
But this does not seem correct, you should have a "reserved" region
covering 0x8000000 as well because you say your platform cannot do DMA
to 0x8000000 and this is why you are doing all this.
All IOVA that the platform cannot DMA from should be reported in the
reserved_regions file as "reserved". You must make your platform
achieve this.
> Yes, i tried that,
>
> This is how my dts node looked like
> reserved-memory {
> faulty_iova: resv_faulty {
> iommu-addresses = <&pcieX 0x8000000 0x100000>;
> };
> ..
> ..
> }
>
> &pcieX {
> memory-region = <&faulty_iova>;
> };
>
> I see it working for the devices which are calling
> iommu_get_resv_regions(), eg if I specify faulty_iova for dma
> controller dts node then i see an additional entry in the related
> group
Exactly, it has to flow from the DT into the reserved_regions, that is
essential.
So what is the problem if you have figured out how to fix up
/sys/kernel/iommu_groups/Y/reserved_regions?
If you found some cases where you can't get /sys/../reserved_regions
to report the right things from the DT then that needs to be addressed
first before you think about fixing SW_MSI.
I very vaguely recall we have some gaps on OF where the DMA-API code
is understanding parts of the DT that don't get mapped into
reserved_regions and nobody has cared to fix it because it only
effects VFIO. You may have landed in the seat that has to fix it :)
But I still don't have a clear sense of what your actual problem is as
you are show DT that seems reasonable and saying that
/sys/../reserved_regions is working..
Jason
next prev parent reply other threads:[~2025-05-28 0:04 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-10 22:50 [PATCH v2 0/3] arm-smmu: select suitable IOVA Shyam Saini
2025-04-10 22:50 ` [PATCH v2 1/3] arm-smmu: move MSI_IOVA macro definitions Shyam Saini
2025-04-11 23:28 ` kernel test robot
2025-04-12 3:17 ` kernel test robot
2025-04-10 22:50 ` [PATCH v2 2/3] dt-bindings: iommu: add "arm,smmu-faulty-msi-iova" property Shyam Saini
2025-04-10 22:50 ` [PATCH v2 3/3] arm-smmu: select suitable MSI IOVA Shyam Saini
2025-04-11 23:40 ` kernel test robot
2025-04-10 23:00 ` [PATCH v2 0/3] arm-smmu: select suitable IOVA Jason Gunthorpe
2025-04-16 18:04 ` Jacob Pan
[not found] ` <67fff12d.650a0220.208c7c.d69dSMTPIN_ADDED_BROKEN@mx.google.com>
2025-04-16 18:17 ` Jason Gunthorpe
2025-04-16 21:34 ` Jacob Pan
2025-05-20 22:42 ` Shyam Saini
2025-05-25 19:07 ` Jason Gunthorpe
2025-05-27 20:54 ` Shyam Saini
2025-05-28 0:04 ` Jason Gunthorpe [this message]
2025-05-28 22:42 ` Jacob Pan
[not found] ` <68379171.170a0220.191ee0.8d6bSMTPIN_ADDED_BROKEN@mx.google.com>
2025-05-29 0:38 ` Jason Gunthorpe
2025-05-29 18:22 ` Shyam Saini
2025-05-29 18:38 ` Jason Gunthorpe
2025-05-29 22:08 ` Shyam Saini
2025-05-30 13:13 ` Jason Gunthorpe
2025-05-30 21:30 ` Shyam Saini
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=20250528000425.GC146260@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=code@tyhicks.com \
--cc=devicetree@vger.kernel.org \
--cc=eahariha@linux.microsoft.com \
--cc=eric.auger@redhat.com \
--cc=iommu@lists.linux.dev \
--cc=jacob.pan@linux.microsoft.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=shyamsaini@linux.microsoft.com \
--cc=vijayb@linux.microsoft.com \
--cc=virtualization@lists.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;
as well as URLs for NNTP newsgroup(s).