From: Baolu Lu <baolu.lu@linux.intel.com>
To: Joel Granados <joel.granados@kernel.org>
Cc: Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Kevin Tian <kevin.tian@intel.com>,
Jason Gunthorpe <jgg@nvidia.com>,
iommu@lists.linux.dev, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH 1/1] iommu/vt-d: PRS isn't usable if PDS isn't supported
Date: Tue, 16 Sep 2025 09:58:14 +0800 [thread overview]
Message-ID: <3d633e85-04fd-4077-9bf8-92fb487f89fb@linux.intel.com> (raw)
In-Reply-To: <zkgvbw42g25a47nyydehxismaup6eh4kygqbdw7fk54kxze7j3@lrczardwx2ma>
On 9/15/25 19:30, Joel Granados wrote:
> On Mon, Sep 15, 2025 at 02:29:46PM +0800, Lu Baolu wrote:
>> The specification, Section 7.10, "Software Steps to Drain Page Requests &
>> Responses," requires software to submit an Invalidation Wait Descriptor
>> (inv_wait_dsc) with the Page-request Drain (PD=1) flag set, along with
>> the Invalidation Wait Completion Status Write flag (SW=1). It then waits
>> for the Invalidation Wait Descriptor's completion.
>>
>> However, the PD field in the Invalidation Wait Descriptor is optional, as
>> stated in Section 6.5.2.9, "Invalidation Wait Descriptor":
>>
>> "Page-request Drain (PD): Remapping hardware implementations reporting
>> Page-request draining as not supported (PDS = 0 in ECAP_REG) treat this
>> field as reserved."
>>
>> This implies that if the IOMMU doesn't support the PDS capability, software
>> can't drain page requests and group responses as expected.
>>
>> Do not enable PCI/PRI if the IOMMU doesn't support PDS.
>
> After giving the spec another look, this is probably the way to go.
> However the PDS also mentions that DT must be set. Should we check
> ecap_dev_iotlb_support(iommu->ecap) as well?
It has already been checked.
>>
>> Reported-by: Joel Granados <joel.granados@kernel.org>
>> Closes: https://lore.kernel.org/r/20250909-jag-pds-v1-1-ad8cba0e494e@kernel.org
>> Fixes: 66ac4db36f4c ("iommu/vt-d: Add page request draining support")
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
>> ---
>> drivers/iommu/intel/iommu.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
>> index 9c3ab9d9f69a..92759a8f8330 100644
>> --- a/drivers/iommu/intel/iommu.c
>> +++ b/drivers/iommu/intel/iommu.c
>> @@ -3812,7 +3812,7 @@ static struct iommu_device *intel_iommu_probe_device(struct device *dev)
>> }
>>
>> if (info->ats_supported && ecap_prs(iommu->ecap) &&
>> - pci_pri_supported(pdev))
>> + ecap_pds(iommu->ecap) && pci_pri_supported(pdev))
> Should this be
> + ecap_dev_iotlb_support(iommu->ecap) && ecap_pds(iommu->ecap) && pci_pri_supported(pdev))
>
> ???
ecap_dev_iotlb_support() has already been checked as it's part of the
info->ats_supported check. The dependency chain is:
ecap_dev_iotlb_support() -> ats_support -> pri_support.
Thanks,
baolu
next prev parent reply other threads:[~2025-09-16 2:01 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-15 6:29 [PATCH 1/1] iommu/vt-d: PRS isn't usable if PDS isn't supported Lu Baolu
2025-09-15 11:30 ` Joel Granados
2025-09-16 1:58 ` Baolu Lu [this message]
2025-09-19 7:13 ` Joel Granados
2025-09-18 4:35 ` 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=3d633e85-04fd-4077-9bf8-92fb487f89fb@linux.intel.com \
--to=baolu.lu@linux.intel.com \
--cc=iommu@lists.linux.dev \
--cc=jgg@nvidia.com \
--cc=joel.granados@kernel.org \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=robin.murphy@arm.com \
--cc=stable@vger.kernel.org \
--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