[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3.2 02/31] NUMA: check if the total numa memory
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH v3.2 02/31] NUMA: check if the total numa memory size is equal to ram_size |
Date: |
Sun, 8 Jun 2014 13:09:46 +0300 |
On Wed, May 14, 2014 at 05:43:06PM +0800, Hu Tao wrote:
> From: Wanlong Gao <address@hidden>
>
> If the total number of the assigned numa nodes memory is not
> equal to the assigned ram size, it will write the wrong data
> to ACPI table, then the guest will ignore the wrong ACPI table
> and recognize all memory to one node. It's buggy, we should
> check it to ensure that we write the right data to ACPI table.
>
> Signed-off-by: Wanlong Gao <address@hidden>
> Reviewed-by: Eduardo Habkost <address@hidden>
> Signed-off-by: Paolo Bonzini <address@hidden>
> Signed-off-by: Hu Tao <address@hidden>
> ---
> numa.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/numa.c b/numa.c
> index 395c14f..1d2f761 100644
> --- a/numa.c
> +++ b/numa.c
> @@ -27,6 +27,8 @@
> #include "exec/cpu-common.h"
> #include "qemu/bitmap.h"
> #include "qom/cpu.h"
> +#include "qemu/error-report.h"
> +#include "include/exec/cpu-common.h" /* for RAM_ADDR_FMT */
>
> static void numa_node_parse_cpus(int nodenr, const char *cpus)
> {
> @@ -127,6 +129,7 @@ void numa_add(const char *optarg)
> void set_numa_nodes(void)
> {
> if (nb_numa_nodes > 0) {
> + uint64_t numa_total;
> int i;
>
> if (nb_numa_nodes > MAX_NODES) {
> @@ -154,6 +157,17 @@ void set_numa_nodes(void)
> node_mem[i] = ram_size - usedmem;
> }
>
> + numa_total = 0;
> + for (i = 0; i < nb_numa_nodes; i++) {
> + numa_total += node_mem[i];
> + }
> + if (numa_total != ram_size) {
> + error_report("qemu: total memory size for NUMA nodes (%" PRIu64
> ")"
> + " should equal to ram_size (" RAM_ADDR_FMT ")\n",
should equal RAM size
> + numa_total, ram_size);
> + exit(1);
> + }
> +
> for (i = 0; i < nb_numa_nodes; i++) {
> if (!bitmap_empty(node_cpumask[i], MAX_CPUMASK_BITS)) {
> break;
> --
> 1.8.5.2.229.g4448466
>
- Re: [Qemu-devel] [PATCH v3.2 02/31] NUMA: check if the total numa memory size is equal to ram_size,
Michael S. Tsirkin <=