On 17/11/2021 10:13, Jan Beulich wrote:
On 17.11.2021 09:55, Roger Pau Monné wrote:
On Wed, Nov 17, 2021 at 09:39:17AM +0100, Jan Beulich wrote:
On 13.09.2021 11:02, Jan Beulich wrote:
libxl__domain_config_setdefault() checks whether PoD is going to be
enabled and fails domain creation if at the same time devices would get
assigned. Nevertheless setting up of IOMMU page tables is allowed.
I'm unsure whether allowing enabling the IOMMU with PoD is the right
thing to do, at least for our toolstack.
May I ask about the reasons of you being unsure?
PoD and passthrough is a total nonsense. You cannot have IOMMU mappings
to bits of the guest physical address space which don't exist.
It is now the case that IOMMU (or not) must be specified at domain
creation time, which is ahead of creating PoD pages. Certainly as far
as Xen is concerned, the logic probably wants reversing to have
add_to_physmap&friends reject PoD if an IOMMU was configured.
A toolstack could, in principle, defer the decision to first device
assignment.
However, this is terrible behaviour all around, because one way or
another we've got to force-populate all PoD pages (which is potentially
minutes worth of work to do), and liable to suffer -ENOMEM, or we have
to reject a control operation with -EBUSY for a task which is dependent
on the guest kernel actions in a known-buggy area.
There is no point trying to make this work. If a user wants a device,
they don't get to have PoD. Anything else is a waste of time and effort
on our behalf for a usecase that doesn't exist in practice.
~Andrew