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
