Message ID | 1305748584-9411-1-git-send-email-levinsasha928@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 05/18/2011 11:56 PM, Sasha Levin wrote: > If user haven't specified cpu count for the guest, use > the amount of online cpus on the host. > > Signed-off-by: Sasha Levin <levinsasha928@gmail.com> Looks good to me, thanks Sasha!
On 05/19/2011 03:56 AM, Sasha Levin wrote: > If user haven't specified cpu count for the guest, use > the amount of online cpus on the host. > > Signed-off-by: Sasha Levin <levinsasha928@gmail.com> > --- > tools/kvm/kvm-run.c | 9 ++++++--- > 1 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c > index 63181bf..1517264 100644 > --- a/tools/kvm/kvm-run.c > +++ b/tools/kvm/kvm-run.c > @@ -70,7 +70,7 @@ extern int active_console; > > bool do_debug_print = false; > > -static int nrcpus = 1; > +static int nrcpus; > > static const char * const run_usage[] = { > "kvm run [<options>] [<kernel image>]", > @@ -409,6 +409,8 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) > signal(SIGQUIT, handle_sigquit); > signal(SIGUSR1, handle_sigusr1); > > + nr_online_cpus = sysconf(_SC_NPROCESSORS_ONLN); > + > while (argc != 0) { > argc = parse_options(argc, argv, options, run_usage, > PARSE_OPT_STOP_AT_NON_OPTION); > @@ -439,7 +441,9 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) > > vmlinux_filename = find_vmlinux(); > > - if (nrcpus < 1 || nrcpus > KVM_NR_CPUS) > + if (nrcpus == 0) > + nrcpus = nr_online_cpus; > + else if (nrcpus < 1 || nrcpus > KVM_NR_CPUS) > die("Number of CPUs %d is out of [1;%d] range", nrcpus, KVM_NR_CPUS); > > if (!ram_size) > @@ -575,7 +579,6 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) > > kvm__init_ram(kvm); > > - nr_online_cpus = sysconf(_SC_NPROCESSORS_ONLN); > thread_pool__init(nr_online_cpus); > > for (i = 0; i < nrcpus; i++) { Looks good to me. Tested-by: Asias He <asias.hejun@gmail.com>
On 05/18/11 13:56, Sasha Levin wrote: > If user haven't specified cpu count for the guest, use > the amount of online cpus on the host. > > Signed-off-by: Sasha Levin <levinsasha928@gmail.com> > --- > tools/kvm/kvm-run.c | 9 ++++++--- > 1 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c > index 63181bf..1517264 100644 > --- a/tools/kvm/kvm-run.c > +++ b/tools/kvm/kvm-run.c > @@ -70,7 +70,7 @@ extern int active_console; > > bool do_debug_print = false; > > -static int nrcpus = 1; > +static int nrcpus; > > static const char * const run_usage[] = { > "kvm run [<options>] [<kernel image>]", > @@ -409,6 +409,8 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) > signal(SIGQUIT, handle_sigquit); > signal(SIGUSR1, handle_sigusr1); > > + nr_online_cpus = sysconf(_SC_NPROCESSORS_ONLN); > + > while (argc != 0) { > argc = parse_options(argc, argv, options, run_usage, > PARSE_OPT_STOP_AT_NON_OPTION); > @@ -439,7 +441,9 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) > > vmlinux_filename = find_vmlinux(); > > - if (nrcpus < 1 || nrcpus > KVM_NR_CPUS) > + if (nrcpus == 0) > + nrcpus = nr_online_cpus; > + else if (nrcpus < 1 || nrcpus > KVM_NR_CPUS) > die("Number of CPUs %d is out of [1;%d] range", nrcpus, KVM_NR_CPUS); What prevents nr_online_cpus from being greater than KVM_NR_CPUS? Since that latter is a #define, might want to change 'else if' to if there. David > > if (!ram_size) > @@ -575,7 +579,6 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) > > kvm__init_ram(kvm); > > - nr_online_cpus = sysconf(_SC_NPROCESSORS_ONLN); > thread_pool__init(nr_online_cpus); > > for (i = 0; i < nrcpus; i++) { -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 05/19/2011 11:04 PM, David Ahern wrote: > > On 05/18/11 13:56, Sasha Levin wrote: >> If user haven't specified cpu count for the guest, use >> the amount of online cpus on the host. >> >> Signed-off-by: Sasha Levin <levinsasha928@gmail.com> >> --- >> tools/kvm/kvm-run.c | 9 ++++++--- >> 1 files changed, 6 insertions(+), 3 deletions(-) >> >> diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c >> index 63181bf..1517264 100644 >> --- a/tools/kvm/kvm-run.c >> +++ b/tools/kvm/kvm-run.c >> @@ -70,7 +70,7 @@ extern int active_console; >> >> bool do_debug_print = false; >> >> -static int nrcpus = 1; >> +static int nrcpus; >> >> static const char * const run_usage[] = { >> "kvm run [<options>] [<kernel image>]", >> @@ -409,6 +409,8 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) >> signal(SIGQUIT, handle_sigquit); >> signal(SIGUSR1, handle_sigusr1); >> >> + nr_online_cpus = sysconf(_SC_NPROCESSORS_ONLN); >> + >> while (argc != 0) { >> argc = parse_options(argc, argv, options, run_usage, >> PARSE_OPT_STOP_AT_NON_OPTION); >> @@ -439,7 +441,9 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) >> >> vmlinux_filename = find_vmlinux(); >> >> - if (nrcpus < 1 || nrcpus > KVM_NR_CPUS) >> + if (nrcpus == 0) >> + nrcpus = nr_online_cpus; >> + else if (nrcpus < 1 || nrcpus > KVM_NR_CPUS) >> die("Number of CPUs %d is out of [1;%d] range", nrcpus, KVM_NR_CPUS); > > What prevents nr_online_cpus from being greater than KVM_NR_CPUS? Since > that latter is a #define, might want to change 'else if' to if there. > > David > Good catch! We should add a constraint here and limit it to KVM_NR_CPUS.
On 05/19/2011 11:08 PM, Cyrill Gorcunov wrote: ... >> >> What prevents nr_online_cpus from being greater than KVM_NR_CPUS? Since >> that latter is a #define, might want to change 'else if' to if there. >> >> David >> > > Good catch! We should add a constraint here and limit it to KVM_NR_CPUS. > Heh, actually it get catched futher in code by max_cpus = kvm__max_cpus(kvm); if (nrcpus > max_cpus) { printf(" # Limit the number of CPUs to %d\n", max_cpus); kvm->nrcpus = max_cpus; } so no issue here (except that MP table can support a limited number of cpus and for 32bit apic addressing we need ACPI support implemented I think).
diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c index 63181bf..1517264 100644 --- a/tools/kvm/kvm-run.c +++ b/tools/kvm/kvm-run.c @@ -70,7 +70,7 @@ extern int active_console; bool do_debug_print = false; -static int nrcpus = 1; +static int nrcpus; static const char * const run_usage[] = { "kvm run [<options>] [<kernel image>]", @@ -409,6 +409,8 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) signal(SIGQUIT, handle_sigquit); signal(SIGUSR1, handle_sigusr1); + nr_online_cpus = sysconf(_SC_NPROCESSORS_ONLN); + while (argc != 0) { argc = parse_options(argc, argv, options, run_usage, PARSE_OPT_STOP_AT_NON_OPTION); @@ -439,7 +441,9 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) vmlinux_filename = find_vmlinux(); - if (nrcpus < 1 || nrcpus > KVM_NR_CPUS) + if (nrcpus == 0) + nrcpus = nr_online_cpus; + else if (nrcpus < 1 || nrcpus > KVM_NR_CPUS) die("Number of CPUs %d is out of [1;%d] range", nrcpus, KVM_NR_CPUS); if (!ram_size) @@ -575,7 +579,6 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) kvm__init_ram(kvm); - nr_online_cpus = sysconf(_SC_NPROCESSORS_ONLN); thread_pool__init(nr_online_cpus); for (i = 0; i < nrcpus; i++) {
If user haven't specified cpu count for the guest, use the amount of online cpus on the host. Signed-off-by: Sasha Levin <levinsasha928@gmail.com> --- tools/kvm/kvm-run.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-)