qemu-devel
[Top][All Lists]
Advanced

[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: Eduardo Habkost
Subject: Re: [Qemu-devel] [PATCH V4 10/10] NUMA: show host memory policy info in info numa command
Date: Fri, 5 Jul 2013 15:49:18 -0300
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, Jul 04, 2013 at 05:53:17PM +0800, Wanlong Gao 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:
> 
>     (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;

This breaks compilation with --enable-werror and CONFIG_NUMA disabled:

/home/ehabkost/rh/proj/virt/qemu/monitor.c: In function ‘do_info_numa’:
/home/ehabkost/rh/proj/virt/qemu/monitor.c:1816:26: error: unused variable 
‘next’ [-Werror=unused-variable]
/home/ehabkost/rh/proj/virt/qemu/monitor.c:1816:19: error: unused variable 
‘first’ [-Werror=unused-variable]
cc1: all warnings being treated as errors
make[1]: *** [monitor.o] Error 1

>  
>      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
>      }
>  }
>  
> -- 
> 1.8.3.2.634.g7a3187e
> 
> 

-- 
Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]