Skip to content

Commit

Permalink
scripts/kvm/kvm_stat: Make cpu detection a function
Browse files Browse the repository at this point in the history
The online cpus detection method is in the Stats class but does not
use any class variables.

Moving it out of the class to the platform detection function makes
the Stats class more readable.

Signed-off-by: Janosch Frank <frankja@linux.vnet.ibm.com>
Message-Id: <1452525484-32309-17-git-send-email-frankja@linux.vnet.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
Janosch Frank authored and bonzini committed Jan 26, 2016
1 parent 8d3b5dd commit 3e46a5c
Showing 1 changed file with 15 additions and 15 deletions.
30 changes: 15 additions & 15 deletions scripts/kvm/kvm_stat
Expand Up @@ -279,6 +279,20 @@ def walkdir(path):
"""
return next(os.walk(path))


def get_online_cpus():
cpulist = []
pattern = r'cpu([0-9]+)'
basedir = '/sys/devices/system/cpu'
for entry in os.listdir(basedir):
match = re.match(pattern, entry)
if not match:
continue
path = os.path.join(basedir, entry, 'online')
if os.path.isfile(path) and open(path).read().strip() == '1':
cpulist.append(int(match.group(1)))
return cpulist

filters = {}
filters['kvm_userspace_exit'] = ('reason', USERSPACE_EXIT_REASONS)
if EXIT_REASONS:
Expand Down Expand Up @@ -375,23 +389,9 @@ class TracepointProvider(object):
def fields(self):
return self._fields

def _online_cpus(self):
l = []
pattern = r'cpu([0-9]+)'
basedir = '/sys/devices/system/cpu'
for entry in os.listdir(basedir):
match = re.match(pattern, entry)
if not match:
continue
path = os.path.join(basedir, entry, 'online')
if os.path.exists(path) and open(path).read().strip() != '1':
continue
l.append(int(match.group(1)))
return l

def _setup(self, _fields):
self._fields = _fields
cpus = self._online_cpus()
cpus = get_online_cpus()

# The constant is needed as a buffer for python libs, std
# streams and other files that the script opens.
Expand Down

0 comments on commit 3e46a5c

Please sign in to comment.