diff options
author | Vasilis Liaskovitis <vasilis.liaskovitis@profitbricks.com> | 2011-10-26 14:19:00 +0200 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2011-12-22 14:53:01 -0200 |
commit | 991dfefdee8f4d1405f4b3cd799e7579f54b6c9f (patch) | |
tree | 5eb81bb8a43e25c63278dcc6f0bed9abffa75a01 /vl.c | |
parent | cce47516cddfb886da9a03cb9db355958b890dce (diff) | |
download | qemu-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.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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; } } |