On 05/03/2018 10:11, Liu, Yi L wrote:
>> Do you really need VTDDeviceNode? I think can you simply put the
>> QLIST_ENTRY in VTDAddressSpace (named e.g. next_by_pasid), since
>> VTDAddressSpace already includes a (bus, devfn).
> Existing VTDAddressSpace is actaully per-device. While for PASID tagged
> address space, it is possible to have multiple devices tied to a single
> PASID tagged address space.
Yes, that's the purpose of VTDPASIDAddressSpace.
> Reuse VTDAddressSpace could be a choice since
> it is a per-device structure, but it may be missleading since there is
> other fileds in VTDAddressSpace. This is why I proposed to have VTDDeviceNode.
I think it's okay to put all per-device setup in VTDAddressSpace. Later
if it makes sense VTDAddressSpace could become a union, according to
whether the IOMMU is configured for PASID or requester ID operation, and
could be renamed to VTDDeviceInfo. But for now it's not needed.
> But consolidation is possible here.