Hi,

  Before I get too far into this I want to get some opinions from the wider 
community...

  At the moment when the first PCI device is assigned to a domain (i.e. passed 
through) this will trigger construction of IOMMU page tables for that domain. 
Similarly when the last PCI device is de-assigned the tables are torn down 
again. Both of these operations can be quite expensive if the domain is a large 
amount for RAM, and if the IOMMU does not support sharing the second level CPU 
page tables (or the domain is PV). Moreover, the guest could simultaneously be 
ballooning or doing other operations that affect its page types and so the 
process of building the tables has to take into account such races.
  If we were instead to say that giving a domain IOMMU page tables is an option 
that needs to be selected at domain create time then it makes the code 
significantly simpler and there is no need to deal with page type 
change/ballooning races any more. I hacked together a test patch and it gets 
rid of roughly 200 lines of code (and there may be more that I missed).
  Does anyone think that deciding whether a domain should get IOMMU page tables 
is not a reasonable thing to have to do at create time?

  Cheers,

    Paul

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to