On 7 May 2014 21:19, Eduardo Habkost <ehabk...@redhat.com> wrote:
> If a given machine have max_cpus set, not just smp_cpus needs to be
> limited, but the total number of CPUs (considering CPU hotplug) for the
> machine.
>
> As smp_parse() already ensures smp_cpus <= max_cpus, we just need to
> check if max_cpus exceeds the limit.
>
> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>
> ---
>  vl.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index 236f95e..e317cc9 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -4039,9 +4039,9 @@ int main(int argc, char **argv, char **envp)
>      smp_parse(qemu_opts_find(qemu_find_opts("smp-opts"), NULL));
>
>      machine->max_cpus = machine->max_cpus ?: 1; /* Default to UP */
> -    if (smp_cpus > machine->max_cpus) {
> -        fprintf(stderr, "Number of SMP cpus requested (%d), exceeds max cpus 
> "
> -                "supported by machine `%s' (%d)\n", smp_cpus,  machine->name,
> +    if (max_cpus > machine->max_cpus) {
> +        fprintf(stderr, "Total number of CPUs (%d), exceeds maximum "
> +                "supported by machine `%s' (%d)\n", max_cpus,  machine->name,
>                  machine->max_cpus);
>          exit(1);


This is confusing. What is max_cpus and why do we not
just set max_cpus = machine->max_cpus ?

thanks
-- PMM

Reply via email to