[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V4 10/10] NUMA: show host memory policy info in
From: |
Luiz Capitulino |
Subject: |
Re: [Qemu-devel] [PATCH V4 10/10] NUMA: show host memory policy info in info numa command |
Date: |
Mon, 8 Jul 2013 14:36:11 -0400 |
On Thu, 4 Jul 2013 17:53:17 +0800
Wanlong Gao <address@hidden> wrote:
> Show host memory policy of nodes in the info numa monitor command.
> After this patch, the monitor command "info numa" will show the
> information like following if the host numa support is enabled:
As you're adding a QMP command to set the policy, wouldn't it make
sense to convert info numa to QMP so that we also have query-numa?
>
> (qemu) info numa
> 2 nodes
> node 0 cpus: 0
> node 0 size: 1024 MB
> node 0 mempolicy: membind=0,1
> node 1 cpus: 1
> node 1 size: 1024 MB
> node 1 mempolicy: interleave=1
>
> Signed-off-by: Wanlong Gao <address@hidden>
> ---
> monitor.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/monitor.c b/monitor.c
> index 93ac045..a40415d 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -74,6 +74,11 @@
> #endif
> #include "hw/lm32/lm32_pic.h"
>
> +#ifdef CONFIG_NUMA
> +#include <numa.h>
> +#include <numaif.h>
> +#endif
> +
> //#define DEBUG
> //#define DEBUG_COMPLETION
>
> @@ -1808,6 +1813,7 @@ static void do_info_numa(Monitor *mon, const QDict
> *qdict)
> int i;
> CPUArchState *env;
> CPUState *cpu;
> + unsigned long first, next;
>
> monitor_printf(mon, "%d nodes\n", nb_numa_nodes);
> for (i = 0; i < nb_numa_nodes; i++) {
> @@ -1821,6 +1827,42 @@ static void do_info_numa(Monitor *mon, const QDict
> *qdict)
> monitor_printf(mon, "\n");
> monitor_printf(mon, "node %d size: %" PRId64 " MB\n", i,
> numa_info[i].node_mem >> 20);
> +
> +#ifdef CONFIG_NUMA
> + monitor_printf(mon, "node %d mempolicy: ", i);
> + switch (numa_info[i].flags & NODE_HOST_POLICY_MASK) {
> + case NODE_HOST_BIND:
> + monitor_printf(mon, "membind=");
> + break;
> + case NODE_HOST_INTERLEAVE:
> + monitor_printf(mon, "interleave=");
> + break;
> + case NODE_HOST_PREFERRED:
> + monitor_printf(mon, "preferred=");
> + break;
> + default:
> + monitor_printf(mon, "default\n");
> + continue;
> + }
> +
> + if (numa_info[i].flags & NODE_HOST_RELATIVE)
> + monitor_printf(mon, "+");
> +
> + next = first = find_first_bit(numa_info[i].host_mem,
> MAX_CPUMASK_BITS);
> + monitor_printf(mon, "%lu", first);
> + do {
> + if (next == numa_max_node())
> + break;
> + next = find_next_bit(numa_info[i].host_mem, MAX_CPUMASK_BITS,
> + next + 1);
> + if (next > numa_max_node() || next == MAX_CPUMASK_BITS)
> + break;
> +
> + monitor_printf(mon, ",%lu", next);
> + } while (true);
> +
> + monitor_printf(mon, "\n");
> +#endif
> }
> }
>
- [Qemu-devel] [PATCH V4 06/10] NUMA: split out the common range parser, (continued)
- [Qemu-devel] [PATCH V4 06/10] NUMA: split out the common range parser, Wanlong Gao, 2013/07/04
- [Qemu-devel] [PATCH V4 02/10] NUMA: Add numa_info structure to contain numa nodes info, Wanlong Gao, 2013/07/04
- [Qemu-devel] [PATCH V4 04/10] NUMA: parse guest numa nodes memory policy, Wanlong Gao, 2013/07/04
- [Qemu-devel] [PATCH V4 09/10] NUMA: add hmp command set-mpol, Wanlong Gao, 2013/07/04
- [Qemu-devel] [PATCH V4 05/10] NUMA: handle Error in cpus, mpol and hostnode parser, Wanlong Gao, 2013/07/04
- [Qemu-devel] [PATCH V4 10/10] NUMA: show host memory policy info in info numa command, Wanlong Gao, 2013/07/04
- [Qemu-devel] [PATCH V4 07/10] NUMA: set guest numa nodes memory policy, Wanlong Gao, 2013/07/04
- [Qemu-devel] [PATCH V4 08/10] NUMA: add qmp command set-mpol to set memory policy for NUMA node, Wanlong Gao, 2013/07/04
- Re: [Qemu-devel] [PATCH V4 08/10] NUMA: add qmp command set-mpol to set memory policy for NUMA node, Wanlong Gao, 2013/07/15
- Re: [Qemu-devel] [PATCH V4 08/10] NUMA: add qmp command set-mpol to set memory policy for NUMA node, Eric Blake, 2013/07/08
Re: [Qemu-devel] [PATCH V4 00/10] Add support for binding guest numa nodes to host numa nodes, Paolo Bonzini, 2013/07/04