Hello,

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.
However, when later assigning a device to a domain which has IOMMU page
tables, libxl__device_pci_add() does not appear to be concerned of PoD:
- xc_test_assign_device() / XEN_DOMCTL_test_assign_device only check the
  device for being available to assign,
- libxl__device_pci_setdefault() is only concerned about the RDM policy,
- other functions called look to not be related to such checking at all.

IMO assignment should fail if pod.count != pod.entry_count, and all PoD
entries should be resolved otherwise (whether explicitly by the
hypervisor or through some suitable existing hypercalls - didn't check
yet whether there are any reasonable candidates - by the tool stack is
secondary).

Jan


Reply via email to