mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Baolu Lu <baolu.lu@linux.intel.com>
To: Jacob Pan <jacob.jun.pan@linux.intel.com>,
	"Tian, Kevin" <kevin.tian@intel.com>
Cc: baolu.lu@linux.intel.com, LKML <linux-kernel@vger.kernel.org>,
	"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	Jason Gunthorpe <jgg@nvidia.com>, Joerg Roedel <joro@8bytes.org>,
	"dmaengine@vger.kernel.org" <dmaengine@vger.kernel.org>,
	"vkoul@kernel.org" <vkoul@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Will Deacon <will@kernel.org>,
	David Woodhouse <dwmw2@infradead.org>,
	"Raj, Ashok" <ashok.raj@intel.com>,
	"Liu, Yi L" <yi.l.liu@intel.com>,
	"Yu, Fenghua" <fenghua.yu@intel.com>,
	"Jiang, Dave" <dave.jiang@intel.com>,
	"Luck, Tony" <tony.luck@intel.com>,
	"Zanussi, Tom" <tom.zanussi@intel.com>
Subject: Re: [PATCH 1/4] iommu/vt-d: Implement set device pasid op for default domain
Date: Sun, 5 Mar 2023 11:05:50 +0800	[thread overview]
Message-ID: <c54aebf7-4282-b8a6-f03b-03af2deea59c@linux.intel.com> (raw)
In-Reply-To: <20230303083512.663ce758@jacob-builder>

On 3/4/23 12:35 AM, Jacob Pan wrote:
>>> From: Baolu Lu<baolu.lu@linux.intel.com>
>>> Sent: Thursday, March 2, 2023 10:07 PM
>>>    
>>>> +
>>>> +	if (hw_pass_through && domain_type_is_si(dmar_domain))
>>>> +		ret = intel_pasid_setup_pass_through(iommu,
>>>> dmar_domain,
>>>> +						     dev, pasid);
>>>> +	else if (dmar_domain->use_first_level)
>>>> +		ret = domain_setup_first_level(iommu, dmar_domain,
>>>> +					       dev, pasid);
>>>> +	else
>>>> +		ret = intel_pasid_setup_second_level(iommu,
>>>> dmar_domain,
>>>> +						     dev, pasid);
>>>> +
>>>> +	return ret;
>>>> +}
>>> Do you need to consider pasid cache invalidation?
>>>    
>> To avoid confusion this is not about invalidation of pasid cache itself
>> which should be covered by above setup functions already.
>>
>> Here actually means per-PASID invalidation in iotlb and devtlb. Today
>> only RID is tracked per domain for invalidation. it needs extension to
>> walk attached pasid too.
> Yes, will add.
> 
> For the set up path, there is no need to flush IOTLBs,  because we're going
> from non present to present.
> 
> On the remove path, IOTLB flush should be covered when device driver
> calls iommu_detach_device_pasid(). Covered with this patch.

It's not only for the PASID teardown path, but also for unmap(). As the
device has issued DMA requests with PASID, the IOMMU probably will cache
the DMA translation with PASID tagged. Hence, we need to invalidate the
PASID-specific IOTLB and device TLB in the unmap() path.

I once had a patch for this:

https://lore.kernel.org/linux-iommu/20220614034411.1634238-1-baolu.lu@linux.intel.com/

Probably you can use it as a starting point.

Best regards,
baolu

  reply	other threads:[~2023-03-05  3:06 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-02  0:59 [PATCH 0/4] Re-enable IDXD kernel workqueue under DMA API Jacob Pan
2023-03-02  0:59 ` [PATCH 1/4] iommu/vt-d: Implement set device pasid op for default domain Jacob Pan
2023-03-02  9:37   ` Tian, Kevin
2023-03-02 19:25     ` Jacob Pan
2023-03-02 14:06   ` Baolu Lu
2023-03-03  2:36     ` Tian, Kevin
2023-03-03  2:48       ` Baolu Lu
2023-03-03  3:02         ` Tian, Kevin
2023-03-03  4:38           ` Baolu Lu
2023-03-03  5:35             ` Tian, Kevin
2023-03-06 19:04               ` Jacob Pan
2023-03-06 19:02                 ` Jason Gunthorpe
2023-03-06 23:45                   ` Jacob Pan
2023-03-07  0:45                     ` Jacob Pan
2023-03-03  5:38     ` Tian, Kevin
2023-03-03 16:35       ` Jacob Pan
2023-03-05  3:05         ` Baolu Lu [this message]
2023-03-06  8:18           ` Tian, Kevin
2023-03-06 18:43             ` Jacob Pan
2023-03-06 18:29           ` Jacob Pan
2023-03-06 12:57   ` Jason Gunthorpe
2023-03-06 17:36     ` Jacob Pan
2023-03-06 17:41       ` Jason Gunthorpe
2023-03-07  2:15         ` Baolu Lu
2023-03-02  0:59 ` [PATCH 2/4] iommu/vt-d: Use non-privileged mode for all PASIDs Jacob Pan
2023-03-02 14:11   ` Baolu Lu
2023-03-03 21:40     ` Jacob Pan
2023-03-02  0:59 ` [PATCH 3/4] iommu/sva: Support reservation of global PASIDs Jacob Pan
2023-03-02  3:06   ` kernel test robot
2023-03-02  3:19   ` kernel test robot
2023-03-02  9:43   ` Tian, Kevin
2023-03-03 21:47     ` Jacob Pan
2023-03-06 13:01       ` Jason Gunthorpe
2023-03-06 17:44         ` Jacob Pan
2023-03-06 17:43           ` Jason Gunthorpe
2023-03-06 17:57             ` Jacob Pan
2023-03-06 18:19               ` Jason Gunthorpe
2023-03-06 18:48                 ` Luck, Tony
2023-03-06 19:05                   ` Jason Gunthorpe
2023-03-09 17:06                     ` Jacob Pan
2023-03-16  7:25                       ` Tian, Kevin
2023-03-20 17:22                         ` Jason Gunthorpe
2023-03-02  0:59 ` [PATCH 4/4] dmaengine/idxd: Re-enable kernel workqueue under DMA API Jacob Pan
2023-03-02  1:03   ` Dave Jiang
2023-03-02  9:47   ` Tian, Kevin
2023-03-02 12:57     ` Jason Gunthorpe
2023-03-03 21:49       ` Jacob Pan
2023-03-03 22:12     ` Jacob Pan
2023-03-03  1:19   ` Baolu Lu
2023-03-03 21:52     ` Jacob Pan

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=c54aebf7-4282-b8a6-f03b-03af2deea59c@linux.intel.com \
    --to=baolu.lu@linux.intel.com \
    --cc=ashok.raj@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=dmaengine@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=fenghua.yu@intel.com \
    --cc=iommu@lists.linux.dev \
    --cc=jacob.jun.pan@linux.intel.com \
    --cc=jgg@nvidia.com \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=tom.zanussi@intel.com \
    --cc=tony.luck@intel.com \
    --cc=vkoul@kernel.org \
    --cc=will@kernel.org \
    --cc=yi.l.liu@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome