mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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@citrix.com> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> Release-acked-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
1 parent
01397478f2
commit
53a84f672d
2 files changed
+14
-10
No files matched your search
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||