You have been subscribed to a public bug:

== Comment: #0 - TSAI-YANG JEA <t...@us.ibm.com> - 2014-08-12 14:52:38 ==
---Problem Description---


In a ppc64le P8 node with SMT 8 mode, numa_node_of_cpu (80) returns following 
warning:
libnuma: Warning: /sys not mounted or invalid. Assuming one node: No such file 
or directory

---uname output---
Linux c656f2n01 3.13.0-30-generic #55-Ubuntu SMP Fri Jul 4 21:29:58 UTC 2014 
ppc64le ppc64le ppc64le GNU/Linux
 
Machine Type = Tuletta P8 22L  
 
---Debugger---
A debugger is not configured
 
---Steps to Reproduce---
 Problem can be created with following test case on a P8 LE machine with SMT=8.

#include <dlfcn.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    int dlopen_flags = RTLD_NOW|RTLD_GLOBAL;
    int(*node_of_cpu)(int cpu);
    int node = 0;
    int cpu;

    if(argc != 2) {
        printf("Usage: %s <cpu index>\n", argv[0]);
        return -1;
    }

    cpu = atoi(argv[1]);
    printf("%d\n", cpu);

    void *handle = dlopen("libnuma.so.1", dlopen_flags);
    if(handle) {
        node_of_cpu = (__typeof__(node_of_cpu))dlsym(handle, 
"numa_node_of_cpu");
        if(node_of_cpu) {
            node = node_of_cpu(cpu);
            printf("cpu %d belongs to node %d\n", cpu, node);
        }
    }
    return 0;
}

To compile the test: gcc test.c -ldl -o test

To run: ./test 80

Other information:

$ numactl -H
available: 4 nodes (0-1,16-17)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
node 0 size: 65115 MB
node 0 free: 2955 MB
node 1 cpus: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
node 1 size: 65473 MB
node 1 free: 3313 MB
node 16 cpus: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
node 16 size: 65457 MB
node 16 free: 9310 MB
node 17 cpus: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 
156 157 158 159
node 17 size: 65209 MB
node 17 free: 10999 MB
node distances:
node   0   1  16  17 
  0:  10  20  40  40 
  1:  20  10  40  40 
 16:  40  40  10  20 
 17:  40  40  20  10 


 
Userspace tool common name: libnuma 
 
The userspace tool has the following bit modes: 64-bit 

== Comment: #4 - Kamalesh Babulal <kamale...@in.ibm.com> - 2014-08-19 12:29:15 
==
numa_node_of_cpu
|
|_numa_node_to_cpus_v2:
                                                  Allocates and updates bitmask 
of /sys/devices/system/node/node%d/cpumap for node 0,1 and checks if the CPU is 
present/isset in the node bitmap of CPU0 and CPU1. As CPU 80 is present in node 
16, it continues to allocate buffer for node 2 (basically till the configured 
nodes)
and tries to read /sys/devices/system/node/node2/cpumap which does not exist, 
so it assumes that the /sys was not mounted or some thing wrong with map file 
and sets all the cpus in the node2 as present.

That's the reason why your seeing the warning and wrong information
about node. We should be skipping the nodes which are not set in the
numa_nodes_ptr

** Affects: numactl (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: architecture-ppc64le bot-comment bugnameltc-114573 severity-medium 
targetmilestone-inin1404
-- 
numa_node_of_cpu() returns warning  when cpu_index > 79
https://bugs.launchpad.net/bugs/1358835
You received this bug notification because you are a member of Ubuntu Server 
Team, which is subscribed to numactl in Ubuntu.

-- 
Ubuntu-server-bugs mailing list
Ubuntu-server-bugs@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs

Reply via email to