All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 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.