[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 21/34] scripts/kvm/kvm_stat: Encapsulate filters
From: |
Janosch Frank |
Subject: |
[Qemu-devel] [PATCH v2 21/34] scripts/kvm/kvm_stat: Encapsulate filters variable |
Date: |
Mon, 11 Jan 2016 16:17: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.
Signed-off-by: Janosch Frank <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)
--
2.3.0
- [Qemu-devel] [PATCH v2 22/34] scripts/kvm/kvm_stat: Cleanup of Stats class, (continued)
- [Qemu-devel] [PATCH v2 22/34] scripts/kvm/kvm_stat: Cleanup of Stats class, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 30/34] scripts/kvm/kvm_stat: Read event values as u64, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 31/34] scripts/kvm/kvm_stat: Fix rlimit for unprivileged users, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 13/34] scripts/kvm/kvm_stat: Fixup syscall error reporting, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 05/34] scripts/kvm/kvm_stat: Mark globals in functions, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 14/34] scripts/kvm/kvm_stat: Set sensible no. files rlimit, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 24/34] scripts/kvm/kvm_stat: Cleanup of Event class, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 20/34] scripts/kvm/kvm_stat: Cleanup cpu list retrieval, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 34/34] scripts/kvm/kvm_stat: Add optparse description, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 21/34] scripts/kvm/kvm_stat: Encapsulate filters variable,
Janosch Frank <=
- [Qemu-devel] [PATCH v2 27/34] scripts/kvm/kvm_stat: Make tui function a class, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 28/34] scripts/kvm/kvm_stat: Fix output formatting, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 32/34] scripts/kvm/kvm_stat: Fixup filtering, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 26/34] scripts/kvm/kvm_stat: Remove unneeded X86_EXIT_REASONS, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 33/34] scripts/kvm/kvm_stat: Add interactive filtering, Janosch Frank, 2016/01/11
- [Qemu-devel] [PATCH v2 09/34] scripts/kvm/kvm_stat: Introduce main function, Janosch Frank, 2016/01/11
- Re: [Qemu-devel] [PATCH v2 00/34] kvm_stat: Cleanup and fixup, Paolo Bonzini, 2016/01/20