aboutsummaryrefslogtreecommitdiff
path: root/vl.c
diff options
context:
space:
mode:
authorVasilis Liaskovitis <vasilis.liaskovitis@profitbricks.com>2011-10-26 14:19:00 +0200
committerMarcelo Tosatti <mtosatti@redhat.com>2011-12-22 14:53:01 -0200
commit991dfefdee8f4d1405f4b3cd799e7579f54b6c9f (patch)
tree5eb81bb8a43e25c63278dcc6f0bed9abffa75a01 /vl.c
parentcce47516cddfb886da9a03cb9db355958b890dce (diff)
downloadqemu-991dfefdee8f4d1405f4b3cd799e7579f54b6c9f.zip
qemu-991dfefdee8f4d1405f4b3cd799e7579f54b6c9f.tar.gz
qemu-991dfefdee8f4d1405f4b3cd799e7579f54b6c9f.tar.bz2
Set numa topology for max_cpus
qemu-kvm passes numa/SRAT topology information for smp_cpus to SeaBIOS. However SeaBIOS always expects to setup max_cpus number of SRAT cpu entries (MaxCountCPUs variable in build_srat function of Seabios). When qemu-kvm runs with smp_cpus != max_cpus (e.g. -smp 2,maxcpus=4), Seabios will mistakenly use memory SRAT info for setting up CPU SRAT entries for the offline CPUs. Wrong SRAT memory entries are also created. This breaks NUMA in a guest. Fix by setting up SRAT info for max_cpus in qemu-kvm. Signed-off-by: Vasilis Liaskovitis <vasilis.liaskovitis@profitbricks.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'vl.c')
-rw-r--r--vl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/vl.c b/vl.c
index c03abb6..d925424 100644
--- a/vl.c
+++ b/vl.c
@@ -3305,7 +3305,7 @@ int main(int argc, char **argv, char **envp)
* real machines which also use this scheme.
*/
if (i == nb_numa_nodes) {
- for (i = 0; i < smp_cpus; i++) {
+ for (i = 0; i < max_cpus; i++) {
node_cpumask[i % nb_numa_nodes] |= 1 << i;
}
}