Message ID | 20161130164950.43543-13-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
>>> On 30.11.16 at 17:49, <roger.pau@citrix.com> wrote: > @@ -176,6 +177,8 @@ unsigned int __init dom0_max_vcpus(void) > max_vcpus = opt_dom0_max_vcpus_max; > if ( max_vcpus > MAX_VIRT_CPUS ) > max_vcpus = MAX_VIRT_CPUS; > + if ( dom0_hvm ) > + max_vcpus = min_t(typeof(max_vcpus), max_vcpus, HVM_MAX_VCPUS); I don't see the need for min_t() here - just follow the code right before your addition: if ( dom0_hvm && max_vcpus > HVM_MAX_VCPUS ) max_vcpus = HVM_MAX_VCPUS; > --- a/xen/arch/x86/setup.c > +++ b/xen/arch/x86/setup.c > @@ -193,7 +193,7 @@ static void __init parse_acpi_param(char *s) > * - hvm Create a PVHv2 Dom0. > * - shadow Use shadow paging for Dom0. > */ > -static bool __initdata dom0_hvm; > +bool __initdata dom0_hvm; > static void __init parse_dom0_param(char *s) > { > char *ss; > --- a/xen/include/asm-x86/setup.h > +++ b/xen/include/asm-x86/setup.h > @@ -63,4 +63,6 @@ extern bool opt_dom0_shadow; > #define opt_dom0_shadow 0 > #endif > > +extern bool dom0_hvm; One more argument to move the command ling option parsing to domain_build.c. Jan
diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index e40fb94..7e22ba3 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -40,6 +40,7 @@ #include <public/version.h> #include <public/arch-x86/hvm/start_info.h> +#include <public/hvm/hvm_info_table.h> static long __initdata dom0_nrpages; static long __initdata dom0_min_nrpages; @@ -176,6 +177,8 @@ unsigned int __init dom0_max_vcpus(void) max_vcpus = opt_dom0_max_vcpus_max; if ( max_vcpus > MAX_VIRT_CPUS ) max_vcpus = MAX_VIRT_CPUS; + if ( dom0_hvm ) + max_vcpus = min_t(typeof(max_vcpus), max_vcpus, HVM_MAX_VCPUS); return max_vcpus; } diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 255e20c..737f2ca 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -193,7 +193,7 @@ static void __init parse_acpi_param(char *s) * - hvm Create a PVHv2 Dom0. * - shadow Use shadow paging for Dom0. */ -static bool __initdata dom0_hvm; +bool __initdata dom0_hvm; static void __init parse_dom0_param(char *s) { char *ss; diff --git a/xen/include/asm-x86/setup.h b/xen/include/asm-x86/setup.h index c4179d1..3c9389e 100644 --- a/xen/include/asm-x86/setup.h +++ b/xen/include/asm-x86/setup.h @@ -63,4 +63,6 @@ extern bool opt_dom0_shadow; #define opt_dom0_shadow 0 #endif +extern bool dom0_hvm; + #endif
PVHv2 Dom0 is limited to 128 vCPUs, as are all HVM guests at the moment. Fix dom0_max_vcpus so it takes this limitation into account by poking at the dom0_hvm variable. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> --- Cc: Jan Beulich <jbeulich@suse.com> Cc: Andrew Cooper <andrew.cooper3@citrix.com> --- Changes since v3: - New in the series. --- xen/arch/x86/domain_build.c | 3 +++ xen/arch/x86/setup.c | 2 +- xen/include/asm-x86/setup.h | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-)