Hi Kevin, On 6/9/21 11:37 AM, Tian, Kevin wrote: >> From: Eric Auger <eric.auger@xxxxxxxxxx> >> Sent: Wednesday, June 9, 2021 4:15 PM >> >> Hi Kevin, >> >> On 6/7/21 4:58 AM, Tian, Kevin wrote: >>> Hi, all, >>> >>> We plan to work on v2 now, given many good comments already received >>> and substantial changes envisioned. This is a very complex topic with >>> many sub-threads being discussed. To ensure that I didn't miss valuable >>> suggestions (and also keep everyone on the same page), here I'd like to >>> provide a list of planned changes in my mind. Please let me know if >>> anything important is lost. :) >>> >>> -- >>> >>> (Remaining opens in v1) >>> >>> - Protocol between kvm/vfio/ioasid for wbinvd/no-snoop. I'll see how >>> much can be refined based on discussion progress when v2 is out; >>> >>> - Device-centric (Jason) vs. group-centric (David) uAPI. David is not fully >>> convinced yet. Based on discussion v2 will continue to have ioasid uAPI >>> being device-centric (but it's fine for vfio to be group-centric). A new >>> section will be added to elaborate this part; >>> >>> - PASID virtualization (section 4) has not been thoroughly discussed yet. >>> Jason gave some suggestion on how to categorize intended usages. >>> I will rephrase this section and hope more discussions can be held for >>> it in v2; >>> >>> (Adopted suggestions) >>> >>> - (Jason) Rename /dev/ioasid to /dev/iommu (so does uAPI e.g. IOASID >>> _XXX to IOMMU_XXX). One suggestion (Jason) was to also rename >>> RID+PASID to SID+SSID. But given the familiarity of the former, I will >>> still use RID+PASID in v2 to ease the discussoin; >>> >>> - (Jason) v1 prevents one device from binding to multiple ioasid_fd's. This >>> will be fixed in v2; >>> >>> - (Jean/Jason) No need to track guest I/O page tables on ARM/AMD. >> When >>> a pasid table is bound, it becomes a container for all guest I/O page >> tables; >> while I am totally in line with that change, I guess we need to revisit >> the invalidate ioctl >> to support PASID table invalidation. > Yes, this is planned when doing this change. OK > >>> - (Jean/Jason) Accordingly a device label is required so iotlb invalidation >>> and fault handling can both support per-device operation. Per Jean's >>> suggestion, this label will come from userspace (when VFIO_BIND_ >>> IOASID_FD); >> what is not totally clear to me is the correspondance between this label >> and the SID/SSID tuple. >> My understanding is it rather maps to the SID because you can attach >> several ioasids to the device. >> So it is not clear to me how you reconstruct the SSID info >> > Yes, device handle maps to SID. The fault data reported to userspace > will include {device_label, ioasid, vendor_fault_data}. In your case > I believe SSID will be included in vendor_fault_data thus no reconstruct > required. For Intel the user could figure out vPASID according to device_ > label and ioasid, i.e. no need to include PASID info in vendor_fault_data. OK that works. Thanks Eric > > Thanks > Kevin