On 2024/10/22 21:15, Jason Gunthorpe wrote:
On Tue, Oct 22, 2024 at 04:59:07PM +0800, Baolu Lu wrote:
Is it feasible to make vIOMMU object more generic, rather than strictly
tying it to nested translation? For example, a normal paging domain that
translates gPAs to hPAs could also have a vIOMMU object associated with
it.
While we can only support vIOMMU object allocation uAPI for S2 paging
domains in the context of this series, we could consider leaving the
option open to associate a vIOMMU object with other normal paging
domains that are not a nested parent?
Why? The nested parent flavour of the domain is basically free to
create, what reason would be to not do that?
Above addressed my question. The software using vIOMMU should allocate a
domain of nested parent type.
If the HW doesn't support it, then does the HW really need/support a
VIOMMU?
I suppose it could be made up to the driver, but for now I think we
should leave it as is in the core code requiring it until we have a
reason to relax it.
Yes. In such cases, the iommu driver could always allow nested parent
domain allocation, but fails to allocate a nested domain if the hardware
is not capable of nesting translation.
Thanks,
baolu