[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 27/49] scripts/kvm/kvm_stat: Encapsulate filters vari
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 27/49] scripts/kvm/kvm_stat: Encapsulate filters variable |
Date: |
Tue, 26 Jan 2016 14:46:59 +0100 |
From: Janosch Frank <address@hidden>
The variable was only used in one class but still was defined
globally. Additionaly the detect_platform routine which prepares the
data that goes into the variable was called on each start of the
script, no matter if the class was needed.
To make the variable local to the TracepointProvider class, a new
function that calls detect_platform and returns the filters was
introduced.
Signed-off-by: Janosch Frank <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
scripts/kvm/kvm_stat | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/scripts/kvm/kvm_stat b/scripts/kvm/kvm_stat
index 083dd2f..7837f40 100755
--- a/scripts/kvm/kvm_stat
+++ b/scripts/kvm/kvm_stat
@@ -302,10 +302,14 @@ def get_online_cpus():
cpu_string = cpu_list.readline()
return parse_int_list(cpu_string)
-filters = {}
-filters['kvm_userspace_exit'] = ('reason', USERSPACE_EXIT_REASONS)
-if EXIT_REASONS:
- filters['kvm_exit'] = ('exit_reason', EXIT_REASONS)
+
+def get_filters():
+ detect_platform()
+ filters = {}
+ filters['kvm_userspace_exit'] = ('reason', USERSPACE_EXIT_REASONS)
+ if EXIT_REASONS:
+ filters['kvm_exit'] = ('exit_reason', EXIT_REASONS)
+ return filters
libc = ctypes.CDLL('libc.so.6', use_errno=True)
syscall = libc.syscall
@@ -385,6 +389,7 @@ class Event(object):
class TracepointProvider(object):
def __init__(self):
self.group_leaders = []
+ self.filters = get_filters()
self._fields = self.get_available_fields()
self.setup_traces()
self.fields = self._fields
@@ -394,8 +399,8 @@ class TracepointProvider(object):
fields = walkdir(path)[1]
extra = []
for field in fields:
- if field in filters:
- filter_name_, filter_dicts = filters[field]
+ if field in self.filters:
+ filter_name_, filter_dicts = self.filters[field]
for name in filter_dicts:
extra.append(field + '(' + name + ')')
fields += extra
@@ -420,8 +425,9 @@ class TracepointProvider(object):
match = re.match(r'(.*)\((.*)\)', name)
if match:
tracepoint, sub = match.groups()
- tracefilter = '%s==%d\0' % (filters[tracepoint][0],
- filters[tracepoint][1][sub])
+ tracefilter = ('%s==%d\0' %
+ (self.filters[tracepoint][0],
+ self.filters[tracepoint][1][sub]))
group.add_event(name, event_set='kvm',
tracepoint=tracepoint,
tracefilter=tracefilter)
@@ -652,7 +658,6 @@ def check_access():
def main():
check_access()
- detect_platform()
options = get_options()
providers = get_providers(options)
stats = Stats(providers, fields=options.fields)
--
1.8.3.1
- [Qemu-devel] [PULL 17/49] scripts/kvm/kvm_stat: Rename variables that redefine globals, (continued)
- [Qemu-devel] [PULL 17/49] scripts/kvm/kvm_stat: Rename variables that redefine globals, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 18/49] scripts/kvm/kvm_stat: Moved DebugfsProvider, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 14/49] scripts/kvm/kvm_stat: Improve debugfs access checking, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 16/49] scripts/kvm/kvm_stat: Fix spaces around keyword assignments, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 20/49] scripts/kvm/kvm_stat: Set sensible no. files rlimit, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 19/49] scripts/kvm/kvm_stat: Fixup syscall error reporting, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 23/49] scripts/kvm/kvm_stat: Rename _perf_event_open, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 22/49] scripts/kvm/kvm_stat: Make cpu detection a function, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 21/49] scripts/kvm/kvm_stat: Cleanup of platform detection, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 26/49] scripts/kvm/kvm_stat: Cleanup cpu list retrieval, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 27/49] scripts/kvm/kvm_stat: Encapsulate filters variable,
Paolo Bonzini <=
- [Qemu-devel] [PULL 25/49] scripts/kvm/kvm_stat: Cleanup of TracepointProvider, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 24/49] scripts/kvm/kvm_stat: Introduce properties for providers, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 30/49] scripts/kvm/kvm_stat: Cleanup of Event class, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 29/49] scripts/kvm/kvm_stat: Cleanup of Groups class, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 28/49] scripts/kvm/kvm_stat: Cleanup of Stats class, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 36/49] scripts/kvm/kvm_stat: Read event values as u64, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 31/49] scripts/kvm/kvm_stat: Group arch specific data, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 34/49] scripts/kvm/kvm_stat: Fix output formatting, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 33/49] scripts/kvm/kvm_stat: Make tui function a class, Paolo Bonzini, 2016/01/26
- [Qemu-devel] [PULL 37/49] scripts/kvm/kvm_stat: Fix rlimit for unprivileged users, Paolo Bonzini, 2016/01/26