Message ID | 20170119172941.65642-8-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 19/01/17 17:29, Roger Pau Monne wrote: > 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> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> On 19.01.17 at 18:29, <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_pvh && max_vcpus > HVM_MAX_VCPUS ) > + max_vcpus = HVM_MAX_VCPUS; Thinking about it again, we shouldn't apply two limits here, when those limits can change independently. I think you want limit = dom0_pvh ? HVM_MAX_VCPUS : MAX_VIRT_CPUS; if ( max_vcpus > limit ) max_vcpus = limit; Jan
diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 4f5f712..55caa30 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_pvh && max_vcpus > HVM_MAX_VCPUS ) + max_vcpus = HVM_MAX_VCPUS; return max_vcpus; }
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> --- Change since v4: - Fix codding style to match rest of the function. Changes since v3: - New in the series. --- xen/arch/x86/domain_build.c | 3 +++ 1 file changed, 3 insertions(+)