[libvirt] [PATCH] Regression: Report correct CPUs present on executing virsh nodecpumap

Peter Krempa pkrempa at redhat.com
Thu May 25 08:18:04 UTC 2017


On Wed, May 24, 2017 at 22:05:54 +0530, Nitesh Konkar wrote:
> On Wed, May 24, 2017 at 8:09 PM, Ján Tomko <jtomko at redhat.com> wrote:
> 
> > On Wed, May 24, 2017 at 07:46:00PM +0530, Nitesh Konkar wrote:
> >
> >> Recent changes to virbitmap.c file created a regression
> >> where on executing the virsh nodecpumap command, the number
> >> of CPUs present was shown as (last cpu online id + 1). This
> >> patch fixes the issue.
> >>
> >> Signed-off-by: Nitesh Konkar <nitkon12 at linux.vnet.ibm.com>
> >> ---
> >> src/Makefile.am      |  2 ++
> >> src/util/virbitmap.c | 10 ++++++++--
> >> 2 files changed, 10 insertions(+), 2 deletions(-)

[...]

> However, currently we get the following output, which is invalid.
> 
> # virsh nodecpumap
> CPUs present:   73             <--- should be 80.
> CPUs online:    10
> CPU map:
> y-------y-------y-------y-------y-------y-------y-------y-------y-------y
> 
> # lscpu
> Architecture:          ppc64le
> Byte Order:            Little Endian
> CPU(s):                80
> On-line CPU(s) list:   0,8,16,24,32,40,48,56,64,72
> Off-line CPU(s) list:  1-7,9-15,17-23,25-31,33-39,41-47,49-55,57-63,65-71,73-79
> Thread(s) per core:    1
> Core(s) per socket:    5
> Socket(s):             2
> NUMA node(s):          2
> Model:                 2.1 (pvr 004b 0201)
> Model name:            POWER8E (raw), altivec supported
> L1d cache:             64K
> L1i cache:             32K
> L2 cache:              512K
> L3 cache:              8192K
> NUMA node0 CPU(s):     0,8,16,24,32
> NUMA node1 CPU(s):     40,48,56,64,72
> 
> # ls /sys/devices/system/cpu | grep cpu[0-9] | wc -l
> 80

This should be the proper fix:

diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c
index aa9cfeac2..6d7e8b4f4 100644
--- a/src/util/virhostcpu.c
+++ b/src/util/virhostcpu.c
@@ -1093,7 +1093,7 @@ virHostCPUGetMap(unsigned char **cpumap,
     if (online)
         *online = virBitmapCountBits(cpus);

-    ret = virBitmapSize(cpus);
+    ret = virHostCPUParseCountLinux();

  cleanup:
     if (ret < 0 && cpumap)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170525/b7bf136f/attachment-0001.sig>


More information about the libvir-list mailing list