Commit-ID:  3c52b658b8e4fbbf7975932bbdc4798421dbcb15
Gitweb:     http://git.kernel.org/tip/3c52b658b8e4fbbf7975932bbdc4798421dbcb15
Author:     Jakub Jelen <[email protected]>
AuthorDate: Sat, 19 Mar 2016 12:58:07 +0100
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 21 Mar 2016 17:46:57 -0300

perf bench numa: Fix assertion for nodes bitfield

Comparing bits and bytes in numa benchmark assertion

I hit the issue on two socket Power8 machine presenting its numa nodes
as 0,1,16,17 (according to numactl). Therefore I got error (and hang of
parent process):

    perf: bench/numa.c:296: bind_to_memnode: Assertion `!(g->p.nr_nodes > 
(int)sizeof(nodemask))' failed.

This is obviously false positive. We can fit all the 18 nodes into
bitfield of 8 bytes (long on 64b architecture).

Signed-off-by: Jakub Jelen <[email protected]>
Cc: Alexander Shishkin <[email protected]>
Cc: Jakub Jelen <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: [email protected]
Link: 
http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
 tools/perf/bench/numa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/bench/numa.c b/tools/perf/bench/numa.c
index 5049d63..7500d95 100644
--- a/tools/perf/bench/numa.c
+++ b/tools/perf/bench/numa.c
@@ -293,7 +293,7 @@ static void bind_to_memnode(int node)
        if (node == -1)
                return;
 
-       BUG_ON(g->p.nr_nodes > (int)sizeof(nodemask));
+       BUG_ON(g->p.nr_nodes > (int)sizeof(nodemask)*8);
        nodemask = 1L << node;
 
        ret = set_mempolicy(MPOL_BIND, &nodemask, sizeof(nodemask)*8);

Reply via email to