[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v11 4/6] remove late (on-demand) construction of IOMMU page tables

Hi Paul,

On 9/13/19 11:58 AM, Paul Durrant wrote:
Now that there is a per-domain IOMMU-enable flag, which should be set if
any device is going to be passed through, stop deferring page table
construction until the assignment is done. Also don't tear down the tables
again when the last device is de-assigned; defer that task until domain

This allows the has_iommu_pt() helper and iommu_status enumeration to be
removed. Calls to has_iommu_pt() are simply replaced by calls to
is_iommu_enabled(). Remaining open-coded tests of iommu_hap_pt_share can
also be replaced by calls to iommu_use_hap_pt().
The arch_iommu_populate_page_table() and iommu_construct() functions become
redundant, as does the 'strict mode' dom0 page_list mapping code in
iommu_hwdom_init(), and iommu_teardown() can be made static is its only
remaining caller, iommu_domain_destroy(), is within the same source

All in all, about 220 lines of code are removed from the hypervisor (at
the expense of some additions in the toolstack).

NOTE: This patch will cause a small amount of extra resource to be used
       to accommodate IOMMU page tables that may never be used, since the
       per-domain IOMMU-enable flag is currently set to the value of the
       global iommu_enable flag. A subsequent patch will add an option to
       the toolstack to allow it to be turned off if there is no intention
       to assign passthrough hardware to the domain.
       To account for the extra resource, 'iommu_memkb' has been added to
       domain_build_info. This patch sets it to a value calculated based
       on the domain's maximum memory when the P2M sharing is either not
       supported or globally disabled, or zero otherwise. However, when
       the toolstack option mentioned above is added, it will also be zero
       if the per-domain IOMMU-enable flag is turned off.

Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
Reviewed-by: Alexandru Isaila <aisaila@xxxxxxxxxxxxxxx>
Acked-by: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>

For the small change in Arm code:

Acked-by: Julien Grall <julien.grall@xxxxxxx>


Julien Grall

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.