From patchwork Mon Jan 11 15:17:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janosch Frank X-Patchwork-Id: 565954 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 945F61402F0 for ; Tue, 12 Jan 2016 02:24:11 +1100 (AEDT) Received: from localhost ([::1]:55140 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIeKH-0001iG-Ae for incoming@patchwork.ozlabs.org; Mon, 11 Jan 2016 10:24:09 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43526) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIeFh-0001jE-Ib for qemu-devel@nongnu.org; Mon, 11 Jan 2016 10:19:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aIeFd-0001sm-2X for qemu-devel@nongnu.org; Mon, 11 Jan 2016 10:19:25 -0500 Received: from e06smtp15.uk.ibm.com ([195.75.94.111]:53991) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIeFc-0001rk-Po for qemu-devel@nongnu.org; Mon, 11 Jan 2016 10:19:21 -0500 Received: from localhost by e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 11 Jan 2016 15:19:19 -0000 Received: from d06dlp03.portsmouth.uk.ibm.com (9.149.20.15) by e06smtp15.uk.ibm.com (192.168.101.145) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 11 Jan 2016 15:19:19 -0000 X-IBM-Helo: d06dlp03.portsmouth.uk.ibm.com X-IBM-MailFrom: frankja@linux.vnet.ibm.com X-IBM-RcptTo: qemu-devel@nongnu.org Received: from b06cxnps3075.portsmouth.uk.ibm.com (d06relay10.portsmouth.uk.ibm.com [9.149.109.195]) by d06dlp03.portsmouth.uk.ibm.com (Postfix) with ESMTP id 8CA361B0804B for ; Mon, 11 Jan 2016 15:19:19 +0000 (GMT) Received: from d06av05.portsmouth.uk.ibm.com (d06av05.portsmouth.uk.ibm.com [9.149.37.229]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u0BFJIib524700 for ; Mon, 11 Jan 2016 15:19:18 GMT Received: from d06av05.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av05.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u0BFJIgV018837 for ; Mon, 11 Jan 2016 08:19:18 -0700 Received: from s38lp20.boeblingen.de.ibm.com (dyn-9-152-224-148.boeblingen.de.ibm.com [9.152.224.148]) by d06av05.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id u0BFJEDu018541; Mon, 11 Jan 2016 08:19:18 -0700 From: Janosch Frank To: pbonzini@redhat.com Date: Mon, 11 Jan 2016 16:17:49 +0100 Message-Id: <1452525484-32309-20-git-send-email-frankja@linux.vnet.ibm.com> X-Mailer: git-send-email 2.3.0 In-Reply-To: <1452525484-32309-1-git-send-email-frankja@linux.vnet.ibm.com> References: <1452525484-32309-1-git-send-email-frankja@linux.vnet.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16011115-0021-0000-0000-0000088BC965 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 195.75.94.111 Cc: frankja@linux.vnet.ibm.com, qemu-devel@nongnu.org Subject: [Qemu-devel] [PATCH v2 19/34] scripts/kvm/kvm_stat: Cleanup of TracepointProvider X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Variables with bad names like f and m were renamed to their full name, so it is clearer which data they contain. Unneeded variables were removed and the field generating code was moved in an own function. dict.iteritems() was removed as directly iterating over a dictionary also yields the needed keys. Signed-off-by: Janosch Frank --- scripts/kvm/kvm_stat | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/scripts/kvm/kvm_stat b/scripts/kvm/kvm_stat index c4e22d0..032e491 100755 --- a/scripts/kvm/kvm_stat +++ b/scripts/kvm/kvm_stat @@ -375,45 +375,47 @@ class Event(object): class TracepointProvider(object): def __init__(self): + self.group_leaders = [] + self._fields = self.get_available_fields() + self.setup_traces() + self.fields = self._fields + + def get_available_fields(self): path = os.path.join(PATH_DEBUGFS_TRACING, 'events', 'kvm') fields = walkdir(path)[1] extra = [] - for f in fields: - if f in filters: - subfield, values = filters[f] - for name, number in values.iteritems(): - extra.append(f + '(' + name + ')') + for field in fields: + if field in filters: + filter_name_, filter_dicts = filters[field] + for name in filter_dicts: + extra.append(field + '(' + name + ')') fields += extra - self._setup(fields) - self.fields = fields + return fields - def _setup(self, _fields): - self._fields = _fields + def setup_traces(self): cpus = get_online_cpus() # The constant is needed as a buffer for python libs, std # streams and other files that the script opens. - rlimit = len(cpus) * len(_fields) + 50 + rlimit = len(cpus) * len(self._fields) + 50 try: resource.setrlimit(resource.RLIMIT_NOFILE, (rlimit, rlimit)) except ValueError: sys.exit("NOFILE rlimit could not be raised to {0}".format(rlimit)) - events = [] - self.group_leaders = [] for cpu in cpus: group = Group(cpu) - for name in _fields: + for name in self._fields: tracepoint = name tracefilter = None - m = re.match(r'(.*)\((.*)\)', name) - if m: - tracepoint, sub = m.groups() + match = re.match(r'(.*)\((.*)\)', name) + if match: + tracepoint, sub = match.groups() tracefilter = '%s==%d\0' % (filters[tracepoint][0], filters[tracepoint][1][sub]) - event = group.add_event(name, event_set='kvm', - tracepoint=tracepoint, - tracefilter=tracefilter) + group.add_event(name, event_set='kvm', + tracepoint=tracepoint, + tracefilter=tracefilter) self.group_leaders.append(group) @property