From: "Michael S. Tsirkin" <mst@redhat.com>
To: Hu Tao <hutao@cn.fujitsu.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
qemu-devel@nongnu.org, Wanlong Gao <gaowanlong@cn.fujitsu.com>,
Igor Mammedov <imammedo@redhat.com>
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 [thread overview]
Message-ID: <20140608100946.GC21677@redhat.com> (raw)
In-Reply-To: <aff13e013e6e494238ab1c37aea2dd4ab29c311e.1400049817.git.hutao@cn.fujitsu.com>
On Wed, May 14, 2014 at 05:43:06PM +0800, Hu Tao wrote:
> From: Wanlong Gao <gaowanlong@cn.fujitsu.com>
>
> 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 <gaowanlong@cn.fujitsu.com>
> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
> ---
> 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
>
next prev parent reply other threads:[~2014-06-08 10:09 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-14 9:43 [Qemu-devel] [PATCH v3.2 00/31] NUMA series, and hostmem improvements Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 01/31] NUMA: move numa related code to new file numa.c Hu Tao
2014-06-08 10:09 ` Michael S. Tsirkin
2014-06-09 2:22 ` Hu Tao
2014-06-09 6:26 ` Michael S. Tsirkin
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 02/31] NUMA: check if the total numa memory size is equal to ram_size Hu Tao
2014-06-08 10:09 ` Michael S. Tsirkin [this message]
2014-06-09 2:23 ` Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 03/31] NUMA: Add numa_info structure to contain numa nodes info Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 04/31] NUMA: convert -numa option to use OptsVisitor Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 05/31] NUMA: expand MAX_NODES from 64 to 128 Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 06/31] man: improve -numa doc Hu Tao
2014-05-14 20:11 ` Eduardo Habkost
2014-06-08 10:09 ` Michael S. Tsirkin
2014-06-09 2:23 ` Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 07/31] vl: redo -object parsing Hu Tao
2014-06-08 9:05 ` Michael S. Tsirkin
2014-06-09 2:13 ` Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 08/31] qmp: allow object-add completion handler to get canonical path Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 09/31] qmp: improve error reporting for -object and object-add Hu Tao
2014-05-14 20:13 ` Eduardo Habkost
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 10/31] pc: pass QEMUMachineInitArgs to pc_memory_init Hu Tao
2014-05-14 20:14 ` Eduardo Habkost
2014-06-08 9:40 ` Michael S. Tsirkin
2014-06-09 2:13 ` Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 11/31] numa: introduce memory_region_allocate_system_memory Hu Tao
2014-05-14 20:30 ` Eduardo Habkost
2014-06-09 2:24 ` Hu Tao
2014-06-08 10:10 ` Michael S. Tsirkin
2014-06-09 2:27 ` Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 12/31] add memdev backend infrastructure Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 13/31] numa: add -numa node, memdev= option Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 14/31] memory: reorganize file-based allocation Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 15/31] memory: move mem_path handling to memory_region_allocate_system_memory Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 16/31] memory: add error propagation to file-based RAM allocation Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 17/31] memory: move preallocation code out of exec.c Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 18/31] memory: move RAM_PREALLOC_MASK to exec.c, rename Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 19/31] hostmem: add file-based HostMemoryBackend Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 20/31] hostmem: separate allocation from UserCreatable complete method Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 21/31] hostmem: add merge and dump properties Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 22/31] hostmem: allow preallocation of any memory region Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 23/31] hostmem: add property to map memory with MAP_SHARED Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 24/31] configure: add Linux libnuma detection Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 25/31] hostmem: add properties for NUMA memory policy Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 26/31] Introduce signed range Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 27/31] qapi: make string input visitor parse int list Hu Tao
2014-06-08 10:11 ` Michael S. Tsirkin
2014-06-09 2:28 ` Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 28/31] qapi: make string output " Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 29/31] qom: introduce object_property_get_enum and object_property_get_uint16List Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 30/31] qmp: add query-memdev Hu Tao
2014-05-14 9:43 ` [Qemu-devel] [PATCH v3.2 31/31] hmp: add info memdev Hu Tao
2014-06-08 10:10 ` Michael S. Tsirkin
2014-06-09 2:28 ` Hu Tao
2014-06-08 10:11 ` [Qemu-devel] [PATCH v3.2 00/31] NUMA series, and hostmem improvements Michael S. Tsirkin
2014-06-09 2:30 ` Hu Tao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140608100946.GC21677@redhat.com \
--to=mst@redhat.com \
--cc=gaowanlong@cn.fujitsu.com \
--cc=hutao@cn.fujitsu.com \
--cc=imammedo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).