Message ID | 1466526844-29245-1-git-send-email-drjones@redhat.com |
---|---|
State | Accepted |
Commit | 66f37d360b3fc91275ab6ca3de81f0d356c24b4a |
Headers | show |
diff --git a/vl.c b/vl.c index c85833a63c28e..b2137ca87078d 100644 --- a/vl.c +++ b/vl.c @@ -1234,8 +1234,10 @@ static void smp_parse(QemuOpts *opts) } else if (cores == 0) { threads = threads > 0 ? threads : 1; cores = cpus / (sockets * threads); + cores = cores > 0 ? cores : 1; } else if (threads == 0) { threads = cpus / (cores * sockets); + threads = threads > 0 ? threads : 1; } else if (sockets * cores * threads < cpus) { error_report("cpu topology: " "sockets (%u) * cores (%u) * threads (%u) < "
Commit 0544edd88a "vl: smp_parse: cleanups" regressed any -smp config that left either cores or threads unspecified, and specified a topology supporting more cpus than the given online cpus. The correct way to calculate the missing parameter would be to use maxcpus, but it's too late to change that now. Restore the old way, which is to calculate it with the online cpus (as is still done), but then, if the result is zero, just set it to one. Signed-off-by: Andrew Jones <drjones@redhat.com> --- vl.c | 2 ++ 1 file changed, 2 insertions(+) -- 2.4.11