|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 5/7] x86/dom0: Improve dom0= useability
Having a pvh boolean isn't ideal. If we gain a 3rd virtulsation mode,
what does `dom0=no-pvh` mean?
Change the syntax to be "dom0 = pv | pvh" which offers an option to more
obviously select PV mode. Hide both options behind the relevent
CONFIG_* settings, and default to PVH mode when CONFIG_PV is compiled
out.
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: Juergen Gross <jgross@xxxxxxxx>
This is fine for compatibility purposes, as this option wasn't present
in Xen 4.11
v2:
* New
v3:
* Use cmdline_strcmp() rather than introducing yet more buggy strncmp()
---
docs/misc/xen-command-line.pandoc | 16 +++++++++-------
xen/arch/x86/dom0_build.c | 8 +++++---
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/docs/misc/xen-command-line.pandoc
b/docs/misc/xen-command-line.pandoc
index 4f27e54..365d2ee 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -637,21 +637,23 @@ trace feature is only enabled in debugging builds of Xen.
Specify the bit width of the DMA heap.
### dom0
- = List of [ pvh=<bool>, shadow=<bool>, verbose=<bool> ]
+ = List of [ pv | pvh, shadow=<bool>, verbose=<bool> ]
Applicability: x86
Controls for how dom0 is constructed on x86 systems.
-* The `pvh` boolean controls whether dom0 is constructed as a PV or a PVH
- guest. The default is PV. In addition, the following requirements must
- be met:
+* The `pv` and `pvh` options select the virtualisation mode of dom0.
+
+ The `pv` option is only available when `CONFIG_PV` is compiled in. The
+ `pvh` option is only available when `CONFIG_HVM` is compiled in. When
+ both options are compiled in, the default is PV.
+
+ In addition, the following requirements must be met:
* The dom0 kernel selected by the boot loader must be capable of the
selected mode.
- * For a PV dom0, Xen must have been compiled with `CONFIG_PV` enabled.
- * For a PVH dom0, Xen must have been compiled with `CONFIG_HVM` enabled,
- and the hardware must have VT-x/SVM extensions available.
+ * For a PVH dom0, the hardware must have VT-x/SVM extensions available.
* The `shadow` boolean is only applicable when dom0 is constructed as a PVH
guest, and controls whether dom0 uses hardware assisted paging, or shadow
diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 7f6ee7f..2b4d9e9 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -280,7 +280,7 @@ struct vcpu *__init alloc_dom0_vcpu0(struct domain *dom0)
#ifdef CONFIG_SHADOW_PAGING
bool __initdata opt_dom0_shadow;
#endif
-bool __initdata dom0_pvh;
+bool __initdata dom0_pvh = !IS_ENABLED(CONFIG_PV);
bool __initdata dom0_verbose;
static int __init parse_dom0_param(const char *s)
@@ -295,8 +295,10 @@ static int __init parse_dom0_param(const char *s)
if ( !ss )
ss = strchr(s, '\0');
- if ( (val = parse_boolean("pvh", s, ss)) >= 0 )
- dom0_pvh = val;
+ if ( IS_ENABLED(CONFIG_PV) && !cmdline_strcmp(s, "pv") )
+ dom0_pvh = false;
+ else if ( IS_ENABLED(CONFIG_HVM) && !cmdline_strcmp(s, "pvh") )
+ dom0_pvh = true;
#ifdef CONFIG_SHADOW_PAGING
else if ( (val = parse_boolean("shadow", s, ss)) >= 0 )
opt_dom0_shadow = val;
--
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 |