[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v8 2/6] iommu: introduce dom0-iommu option
To select the iommu configuration used by Dom0. This option supersedes iommu=dom0-strict|dom0-passthrough. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- Changes since v5: - Fix typo in docs. - Force iommu_hwdom_passthrough to false for PVH Dom0. Note this in the documentation. Changes since v4: - Move the iommu_dom0_* variable renaming to a previous patch. - Use dom0-iommu=passthrough|strict booleans, like the iommu option used. Changes since v2: - Change the style and text used in the xen command line document. - Don't allow none, strict or relaxed to use the no- prefix. Changes since v1: - New in this version. --- Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Cc: George Dunlap <George.Dunlap@xxxxxxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Julien Grall <julien.grall@xxxxxxx> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> Cc: Tim Deegan <tim@xxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> --- docs/misc/xen-command-line.markdown | 21 +++++++++++++++++++ xen/drivers/passthrough/iommu.c | 31 +++++++++++++++++++++++++---- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown index 559c0662fa..cd57960ede 100644 --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -681,6 +681,21 @@ Flag that makes a dom0 boot in PVHv2 mode. Flag that makes a dom0 use shadow paging. Only works when "pvh" is enabled. +### dom0-iommu +> `= List of [ passthrough | strict ]` + +This list of booleans controls the iommu usage by Dom0: + +* `passthrough`: disables DMA remapping for Dom0. Default is `false`. Note that + this option is hard coded to `false` for a PVH Dom0 and any attempt to + overwrite it from the command line is ignored. + +* `strict`: sets up DMA remapping only for the RAM Dom0 actually got assigned. + Default is `false` which means Dom0 will get mappings for all the host + RAM except regions in use by Xen. Note that this option is hard coded to + `true` for a PVH Dom0 and any attempt to overwrite it from the command line + is ignored. + ### dom0\_ioports\_disable (x86) > `= List of <hex>-<hex>` @@ -1152,12 +1167,18 @@ detection of systems known to misbehave upon accesses to that port. > `dom0-passthrough` +> **WARNING: This command line option is deprecated, and superseded by +> _dom0-iommu=passthrough_ - using both options in combination is undefined.** + > Default: `false` >> Control whether to disable DMA remapping for Dom0. > `dom0-strict` +> **WARNING: This command line option is deprecated, and superseded by +> _dom0-iommu=strict_ - using both options in combination is undefined.** + > Default: `false` >> Control whether to set up DMA remapping only for the memory Dom0 actually diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c index 729ee5c373..8f9975cf4e 100644 --- a/xen/drivers/passthrough/iommu.c +++ b/xen/drivers/passthrough/iommu.c @@ -136,6 +136,32 @@ static int __init parse_iommu_param(const char *s) return rc; } +static int __init parse_dom0_iommu_param(const char *s) +{ + const char *ss; + int rc = 0; + + do { + int val; + + ss = strchr(s, ','); + if ( !ss ) + ss = strchr(s, '\0'); + + if ( (val = parse_boolean("passthrough", s, ss)) >= 0 ) + iommu_hwdom_passthrough = val; + else if ( (val = parse_boolean("strict", s, ss)) >= 0 ) + iommu_hwdom_strict = val; + else + rc = -EINVAL; + + s = ss + 1; + } while ( *ss ); + + return rc; +} +custom_param("dom0-iommu", parse_dom0_iommu_param); + int iommu_domain_init(struct domain *d) { struct domain_iommu *hd = dom_iommu(d); @@ -159,10 +185,7 @@ static void __hwdom_init check_hwdom_reqs(struct domain *d) arch_iommu_check_autotranslated_hwdom(d); - if ( iommu_hwdom_passthrough ) - panic("Dom0 uses paging translated mode, dom0-passthrough must not be " - "enabled\n"); - + iommu_hwdom_passthrough = false; iommu_hwdom_strict = true; } -- 2.18.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |