[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 7/7] xen/dom0: Add a dom0-iommu=none option
For development purposes, it is very convenient to boot Xen as a PVH guest, with an XTF PV or PVH "dom0". The edit-compile-go cycle is a matter of seconds, and you can reasonably insert printk() debugging in places which which would be completely infeasible when booting fully-fledged guests. However, the PVH dom0 path insists on having a working IOMMU, which doesn't exist when virtualised as a PVH guest, and isn't necessary for XTF anyway. Introduce a developer mode to skip the IOMMU requirement. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Wei Liu <wei.liu2@xxxxxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> CC: Julien Grall <julien.grall@xxxxxxx> CC: Juergen Gross <jgross@xxxxxxxx> v2: * Retain `none` as opposed to repurposing `passthrough`. It turns out that they are different. * Update cmdline_strcmp() to look only for commas. v3: * Rebase over splitting cmdline_strcmp() out into a standalone fix. --- docs/misc/xen-command-line.pandoc | 8 +++++++- xen/drivers/passthrough/iommu.c | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc index ccfad4c..410a7f6 100644 --- a/docs/misc/xen-command-line.pandoc +++ b/docs/misc/xen-command-line.pandoc @@ -667,7 +667,7 @@ Controls for how dom0 is constructed on x86 systems. information during the dom0 build. It defaults to false. ### dom0-iommu - = List of [ passthrough=<bool>, strict=<bool>, map-reserved=<bool> ] + = List of [ passthrough=<bool>, strict=<bool>, map-reserved=<bool>, none ] Controls for the dom0 IOMMU setup. @@ -709,6 +709,12 @@ Controls for the dom0 IOMMU setup. This option is enabled by default on x86 systems, and invalid on ARM systems. +* The `none` option is intended for development purposes only, and skips + certain safety checks pertaining to the correct IOMMU configuration for + dom0 to boot. + + Incorrect use of this option may result in a malfunctioning system. + ### dom0_ioports_disable (x86) > `= List of <hex>-<hex>` diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c index 696d189..0e0fe67 100644 --- a/xen/drivers/passthrough/iommu.c +++ b/xen/drivers/passthrough/iommu.c @@ -36,6 +36,7 @@ bool_t __read_mostly iommu_snoop = 1; bool_t __read_mostly iommu_qinval = 1; bool_t __read_mostly iommu_intremap = 1; +static bool __hwdom_initdata iommu_hwdom_none; bool __hwdom_initdata iommu_hwdom_strict; bool __read_mostly iommu_hwdom_passthrough; int8_t __hwdom_initdata iommu_hwdom_reserved = -1; @@ -128,6 +129,8 @@ static int __init parse_dom0_iommu_param(const char *s) iommu_hwdom_strict = val; else if ( (val = parse_boolean("map-reserved", s, ss)) >= 0 ) iommu_hwdom_reserved = val; + else if ( !cmdline_strcmp(s, "none") ) + iommu_hwdom_none = true; else rc = -EINVAL; @@ -156,7 +159,7 @@ int iommu_domain_init(struct domain *d) static void __hwdom_init check_hwdom_reqs(struct domain *d) { - if ( !paging_mode_translate(d) ) + if ( iommu_hwdom_none || !paging_mode_translate(d) ) return; arch_iommu_check_autotranslated_hwdom(d); -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |