Also, document what the macro is really useful for. Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Reviewed-by: Laszlo Ersek <ler...@redhat.com> --- Changes v3 -> v4: * s/should/shall/ at the MAX_CPUS comment --- include/sysemu/sysemu.h | 9 ++++++++- vl.c | 10 +++++----- 2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index b90df9a..6bc1a85 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -133,7 +133,14 @@ extern uint8_t qemu_extra_params_fw[2]; extern QEMUClockType rtc_clock; #define MAX_NODES 64 -#define MAX_CPUMASK_BITS 255 + +/* The following shall be true for all CPUs: + * cpu->cpu_index < max_cpus <= MAX_CPUS + * + * Note that cpu->get_arch_id() may be larger than MAX_CPUS. + */ +#define MAX_CPUS 255 + extern int nb_numa_nodes; extern uint64_t node_mem[MAX_NODES]; extern unsigned long *node_cpumask[MAX_NODES]; diff --git a/vl.c b/vl.c index bca5c95..64b38a5 100644 --- a/vl.c +++ b/vl.c @@ -1278,11 +1278,11 @@ static void numa_node_parse_cpus(int nodenr, const char *cpus) goto error; } - if (endvalue >= MAX_CPUMASK_BITS) { - endvalue = MAX_CPUMASK_BITS - 1; + if (endvalue >= MAX_CPUS) { + endvalue = MAX_CPUS - 1; fprintf(stderr, "qemu: NUMA: A max of %d VCPUs are supported\n", - MAX_CPUMASK_BITS); + MAX_CPUS); } if (endvalue < value) { @@ -2954,7 +2954,7 @@ int main(int argc, char **argv, char **envp) for (i = 0; i < MAX_NODES; i++) { node_mem[i] = 0; - node_cpumask[i] = bitmap_new(MAX_CPUMASK_BITS); + node_cpumask[i] = bitmap_new(MAX_CPUS); } nb_numa_nodes = 0; @@ -4245,7 +4245,7 @@ int main(int argc, char **argv, char **envp) } for (i = 0; i < nb_numa_nodes; i++) { - if (!bitmap_empty(node_cpumask[i], MAX_CPUMASK_BITS)) { + if (!bitmap_empty(node_cpumask[i], MAX_CPUS)) { break; } } -- 1.8.5.3