[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen staging] iommu: introduce dom0-iommu option
commit 391266f0120c92ce8eb5bdb4a41bd314daaf6070 Author: Roger Pau Monné <roger.pau@xxxxxxxxxx> AuthorDate: Fri Sep 7 11:08:00 2018 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Wed Sep 12 16:30:07 2018 +0200 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> --- docs/misc/xen-command-line.markdown | 21 +++++++++++++++++++++ xen/drivers/passthrough/iommu.c | 30 +++++++++++++++++++++++++++--- 2 files changed, 48 insertions(+), 3 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 8fef6db8af..679c59719a 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,9 +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; } -- generated by git-patchbot for /home/xen/git/xen.git#staging _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |