|
|
4cad9c |
From 56cec3cf78392f2464f28129b1de70c53616de26 Mon Sep 17 00:00:00 2001
|
|
|
4cad9c |
From: Jozef Bacik <jobacik@redhat.com>
|
|
|
4cad9c |
Date: Wed, 24 Aug 2016 11:05:05 +0100
|
|
|
4cad9c |
Subject: [PATCH] fix parse_affinity for CPU numbers greater than 31
|
|
|
4cad9c |
|
|
|
4cad9c |
The function parse_affinity reports wrong results for CPU numbers
|
|
|
4cad9c |
greater than 31.
|
|
|
4cad9c |
|
|
|
4cad9c |
The problem is caused by the function bitmastlist which parse_affinity
|
|
|
4cad9c |
calls. The fix treats the inpput line as a long hexbitmask instead of an
|
|
|
4cad9c |
array in order to produce correct results
|
|
|
4cad9c |
|
|
|
4cad9c |
Signed-off-by: Jozef Bacik <jobacik@redhat.com>
|
|
|
4cad9c |
Signed-off-by: John Kacur <jkacur@redhat.com>
|
|
|
4cad9c |
---
|
|
|
4cad9c |
procfs/utilist.py | 16 ++++++----------
|
|
|
4cad9c |
1 file changed, 6 insertions(+), 10 deletions(-)
|
|
|
4cad9c |
|
|
|
4cad9c |
diff --git a/procfs/utilist.py b/procfs/utilist.py
|
|
|
4cad9c |
index 18645c0ba45e..0e7c24f45cda 100755
|
|
|
4cad9c |
--- a/procfs/utilist.py
|
|
|
4cad9c |
+++ b/procfs/utilist.py
|
|
|
4cad9c |
@@ -37,18 +37,14 @@ def hexbitmask(l, nr_entries):
|
|
|
4cad9c |
return hexbitmask
|
|
|
4cad9c |
|
|
|
4cad9c |
def bitmasklist(line, nr_entries):
|
|
|
4cad9c |
- fields = line.strip().split(",")
|
|
|
4cad9c |
+ hexmask = line.strip().replace(",", "")
|
|
|
4cad9c |
bitmasklist = []
|
|
|
4cad9c |
entry = 0
|
|
|
4cad9c |
- for i in range(len(fields) - 1, -1, -1):
|
|
|
4cad9c |
- mask = int(fields[i], 16)
|
|
|
4cad9c |
- while mask != 0:
|
|
|
4cad9c |
- if mask & 1:
|
|
|
4cad9c |
- bitmasklist.append(entry)
|
|
|
4cad9c |
- mask >>= 1
|
|
|
4cad9c |
- entry += 1
|
|
|
4cad9c |
- if entry == nr_entries:
|
|
|
4cad9c |
- break
|
|
|
4cad9c |
+ bitmask = bin(int(hexmask, 16))[2::]
|
|
|
4cad9c |
+ for i in reversed(bitmask):
|
|
|
4cad9c |
+ if int(i) & 1:
|
|
|
4cad9c |
+ bitmasklist.append(entry)
|
|
|
4cad9c |
+ entry +=1
|
|
|
4cad9c |
if entry == nr_entries:
|
|
|
4cad9c |
break
|
|
|
4cad9c |
return bitmasklist
|
|
|
4cad9c |
--
|
|
|
4cad9c |
2.4.11
|
|
|
4cad9c |
|