[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 21/34] scripts/kvm/kvm_stat: Encapsulate filters var
From: |
Janosch Frank |
Subject: |
[Qemu-devel] [PATCH 21/34] scripts/kvm/kvm_stat: Encapsulate filters variable |
Date: |
Thu, 10 Dec 2015 13:12:51 +0100 |
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.
---
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 20fc5c9..868c6a5 100755
--- a/scripts/kvm/kvm_stat
+++ b/scripts/kvm/kvm_stat
@@ -296,10 +296,14 @@ def get_online_cpus():
int(cpu_range[1]) + 1))
return cpulist
-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
@@ -379,6 +383,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
@@ -388,8 +393,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
@@ -414,8 +419,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)
@@ -646,7 +652,6 @@ def check_access():
def main():
check_access()
- detect_platform()
options = get_options()
providers = get_providers(options)
stats = Stats(providers, fields=options.fields)
--
2.3.0
- [Qemu-devel] [PATCH 01/34] scripts/kvm/kvm_stat: Cleanup of multiple imports, (continued)
- [Qemu-devel] [PATCH 01/34] scripts/kvm/kvm_stat: Cleanup of multiple imports, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 05/34] scripts/kvm/kvm_stat: Mark globals in functions, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 14/34] scripts/kvm/kvm_stat: Set sensible no. files rlimit, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 12/34] scripts/kvm/kvm_stat: Moved DebugfsProvider, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 32/34] scripts/kvm/kvm_stat: Fix rlimit for unprivileged users, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 13/34] scripts/kvm/kvm_stat: Fixup syscall error reporting, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 34/34] scripts/kvm/kvm_stat: Add interactive filtering, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 03/34] scripts/kvm/kvm_stat: Make constants uppercase, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 17/34] scripts/kvm/kvm_stat: Rename _perf_event_open, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 18/34] scripts/kvm/kvm_stat: Introduce properties for providers, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 21/34] scripts/kvm/kvm_stat: Encapsulate filters variable,
Janosch Frank <=
- [Qemu-devel] [PATCH 23/34] scripts/kvm/kvm_stat: Cleanup of Groups class, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 16/34] scripts/kvm/kvm_stat: Make cpu detection a function, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 22/34] scripts/kvm/kvm_stat: Cleanup of Stats class, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 26/34] scripts/kvm/kvm_stat: Remove unneeded X86_EXIT_REASONS, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 10/34] scripts/kvm/kvm_stat: Fix spaces around keyword assignments, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 29/34] scripts/kvm/kvm_stat: Move to argparse and add description, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 27/34] scripts/kvm/kvm_stat: Make tui function a class, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 24/34] scripts/kvm/kvm_stat: Cleanup of Event class, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 33/34] scripts/kvm/kvm_stat: Fixup filtering, Janosch Frank, 2015/12/10
- [Qemu-devel] [PATCH 11/34] scripts/kvm/kvm_stat: Rename variables that redefine globals, Janosch Frank, 2015/12/10