From: Vasant Hegde <vasant.hegde@amd.com>
To: Yi Liu <yi.l.liu@intel.com>, Jason Gunthorpe <jgg@ziepe.ca>
Cc: Joerg Roedel <joro@8bytes.org>,
"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>,
Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Baolu Lu <baolu.lu@linux.intel.com>
Subject: Re: [RFC] iommu_ops->domain_alloc_paging() enhancement to support AMD IOMMU driver
Date: Thu, 11 Jul 2024 15:45:42 +0530 [thread overview]
Message-ID: <4ffc953f-4968-46c7-b6a0-b7b2fc454564@amd.com> (raw)
In-Reply-To: <8bfc6cb7-d2d7-4d4c-9970-f4f207fb54b4@intel.com>
Hi Yi,
On 7/3/2024 12:27 PM, Yi Liu wrote:
> On 2024/7/3 13:42, Vasant Hegde wrote:
>> Jason,
>>
>>
>> On 7/1/2024 10:56 PM, Jason Gunthorpe wrote:
>>> On Mon, Jul 01, 2024 at 04:18:01PM +0530, Vasant Hegde wrote:
>>>
>>>>> Then VFIO will just request the V2 domain anyhow and you are right
>>>>> back to the starting problem again.
>>>>
>>>> Let me see if I can put together here.
>>>>
>>>>
>>>> - Basically we want domain_alloc_paging() to explicitly tell domain requirement
>>>> (ex: allocate PASID capable UNMANAGED domain)
>>>> If we do that then we will fix ordering issue I described earlier.
>>>> - Fix attach device path so that for 'PASID capable UNMANAGED domain' :
>>>> non-PASID capable device will use AMD V2 page table with GCR3[0]
>>>> PASID capable device will setup its GCR3 table as well and it should work
>>>> fine.
>>>>
>>>> Net we need a enhancement to domain_alloc_paging(). Otherwise I don't see a way
>>>> to reliable implement things.
>>>
>>> Yes, some flag at domain allocation time is clearly needed
>>
>> Right. I will try to get this going and then we can fine tune with Robin's
>> suggestion.
>>
>>>
>>> But you need the whole story, including when will VFIO set the flag,
>>> which requires a uAPI someplace.
>>>
>>>> But these two can go independently?
>>>
>>> If PASID goes with a default-on uAPI then you loose what you are
>>> asking for as VFIO will always request PASID.
>>>
>>> So the overall plan has to be sorted out now..
>>
>> Is this the Yi's thread you were referring ?
>>
>> https://lore.kernel.org/linux-iommu/20240628090557.50898-1-yi.l.liu@intel.com/
>
> This is part of the whole work. What Jason refers may be the below one.
> It includes how VFIO report the PASID capability to userspace. There is
> an open to be closed though. I'll loop you in the next version. :)
Thank you Yi. I will start looking into this series.
>
> https://lore.kernel.org/kvm/20240412082121.33382-1-yi.l.liu@intel.com/
>
> BTW. For AMD, can a single device be attached to multiple V1 page table?
> IIRC. looks like AMD has only one V1 page table pointer per BDF. But there
> is a PASID table which has multiple cr3 page table pointers.
Jason covered this part in his response. Basically AMD has two page table :
V1 which doesn't support PASID.
V2 which support PASID
By default when host is booted it will be in V1 page table. What we are planning
is we will implement domain_alloc_paging() interface in AMD driver. As part of that:
- PASID capable device will be placed in V2 page table, rest will be in V1
page table
For UNMANAGED domain (like vfio-pci), we would need a indication from core layer
saying whether we want to allocate PASID capable domain or not. So that
internally we can allocate appropriate page table type.
That means from VFIO layer we need to pass this detail to IOMMU layer.
For this part, I will start watching your patch. May be we can start discussion
in that thread itself.
-Vasant
next prev parent reply other threads:[~2024-07-11 10:15 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-28 6:43 [RFC] iommu_ops->domain_alloc_paging() enhancement to support AMD IOMMU driver Vasant Hegde
2024-06-28 12:23 ` Baolu Lu
2024-06-28 13:06 ` Robin Murphy
2024-06-28 17:08 ` Vasant Hegde
2024-06-28 17:58 ` Robin Murphy
2024-07-01 10:28 ` Vasant Hegde
2024-06-28 14:50 ` Vasant Hegde
2024-06-28 15:34 ` Jason Gunthorpe
2024-06-28 13:03 ` Jason Gunthorpe
2024-06-28 17:49 ` Vasant Hegde
2024-06-28 18:04 ` Jason Gunthorpe
2024-07-01 10:48 ` Vasant Hegde
2024-07-01 17:26 ` Jason Gunthorpe
2024-07-03 5:42 ` Vasant Hegde
2024-07-03 6:57 ` Yi Liu
2024-07-09 18:23 ` Jason Gunthorpe
2024-07-10 4:17 ` Yi Liu
2024-07-11 23:49 ` Jason Gunthorpe
2024-07-12 13:40 ` Robin Murphy
2024-07-12 13:53 ` Jason Gunthorpe
2024-07-12 15:12 ` Robin Murphy
2024-07-12 15:19 ` Jason Gunthorpe
2024-07-15 8:46 ` Yi Liu
2024-07-11 10:15 ` Vasant Hegde [this message]
2024-07-11 13:56 ` Yi Liu
2024-07-12 1:39 ` Baolu Lu
2024-07-12 2:43 ` Yi Liu
2024-07-15 10:39 ` Vasant Hegde
2024-07-16 7:43 ` Yi Liu
2024-07-16 13:41 ` Jason Gunthorpe
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=4ffc953f-4968-46c7-b6a0-b7b2fc454564@amd.com \
--to=vasant.hegde@amd.com \
--cc=baolu.lu@linux.intel.com \
--cc=iommu@lists.linux.dev \
--cc=jgg@ziepe.ca \
--cc=joro@8bytes.org \
--cc=robin.murphy@arm.com \
--cc=suravee.suthikulpanit@amd.com \
--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