From patchwork Fri May 25 15:58:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leonardo Sandoval X-Patchwork-Id: 920629 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-92755-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.intel.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="v0L4lrTN"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40srXF3rTpz9s0W for ; Sat, 26 May 2018 01:58:53 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references; q=dns; s=default; b=lRXT9GSDudGWHbUALKBAlfsQhOOyu8/ Gn8Njge7/0R83UhmYZc8THBm87r2VJe5oPDP7frCa+D4EYz3Fi0/0di+iba6ZKpo dt5IOCtU8FRnVPMl1gf/Rhe9112T4d/MDTS74iTeLoszIbJ7qqiWRVFlnJAB47a7 L9aapoRAIBFA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references; s=default; bh=fbvm1XF9uwmY7kYv1U7EnU8l8AU=; b=v0L4l rTNi9mzDRm6x6gl6BbXZwd7eXejzCUhu27OpQMqzOe89HrnDSyliAslYZ1aabII6 fz2lUYrrI/bC+QkIsXV5RI/7l/L5q+UbU26aBcVqlPrf2PTG9EG9RPAzHl3HACIq 4FIOeqNMj8HtKsbWn9HODl4WgRgcM8LZ6Kv0t8= Received: (qmail 106570 invoked by alias); 25 May 2018 15:58:39 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 106553 invoked by uid 89); 25 May 2018 15:58:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY autolearn=ham version=3.3.2 spammy= X-HELO: mga17.intel.com X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 From: leonardo.sandoval.gonzalez@linux.intel.com To: libc-alpha@sourceware.org Cc: Leonardo Sandoval Subject: [PATCH 1/3] benchtests: Add --no-diff option to avoid diff calculation Date: Fri, 25 May 2018 10:58:28 -0500 Message-Id: <20180525155830.6864-2-leonardo.sandoval.gonzalez@linux.intel.com> In-Reply-To: <20180525155830.6864-1-leonardo.sandoval.gonzalez@linux.intel.com> References: <20180525155830.6864-1-leonardo.sandoval.gonzalez@linux.intel.com> From: Leonardo Sandoval Having the report with no diff numbers (percentages numbers enclosed within parenthesis) makes column separation cleaner (just spaces), allowing easier interaction with other tools. * benchtests/scripts/compare_string.py: Add --no-diff option to avoid diff calculation. --- ChangeLog | 5 +++++ benchtests/scripts/compare_strings.py | 15 +++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index c7436c4f333..afddd77315a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-05-25 Leonardo Sandoval + + * benchtests/scripts/compare_string.py: Add --no-diff option + to avoid diff calculation. + 2018-05-24 Tulio Magno Quites Machado Filho Gabriel F. T. Gomes diff --git a/benchtests/scripts/compare_strings.py b/benchtests/scripts/compare_strings.py index d37442076bf..ceeccea13b6 100755 --- a/benchtests/scripts/compare_strings.py +++ b/benchtests/scripts/compare_strings.py @@ -79,7 +79,7 @@ def draw_graph(f, v, ifuncs, results): pylab.savefig('%s-%s.png' % (f, v), bbox_inches='tight') -def process_results(results, attrs, base_func, graph): +def process_results(results, attrs, base_func, graph, no_diff): """ Process results and print them Args: @@ -107,10 +107,11 @@ def process_results(results, attrs, base_func, graph): graph_res[key] = res['timings'] for t in res['timings']: sys.stdout.write ('%12.2f' % t) - if i != base_index: - base = res['timings'][base_index] - diff = (base - t) * 100 / base - sys.stdout.write (' (%6.2f%%)' % diff) + if not no_diff: + if i != base_index: + base = res['timings'][base_index] + diff = (base - t) * 100 / base + sys.stdout.write (' (%6.2f%%)' % diff) sys.stdout.write('\t') i = i + 1 print('') @@ -132,7 +133,7 @@ def main(args): attrs = args.attributes.split(',') results = parse_file(args.input, args.schema) - process_results(results, attrs, base_func, args.graph) + process_results(results, attrs, base_func, args.graph, args.no_diff) if __name__ == '__main__': @@ -152,6 +153,8 @@ if __name__ == '__main__': help='IFUNC variant to set as baseline.') parser.add_argument('-g', '--graph', action='store_true', help='Generate a graph from results.') + parser.add_argument('--no-diff', action='store_true', + help='Do not include diff on .') args = parser.parse_args() main(args) From patchwork Fri May 25 15:58:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leonardo Sandoval X-Patchwork-Id: 920630 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-92756-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.intel.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="EcB9Q/Xk"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40srXR2CSxz9s0W for ; Sat, 26 May 2018 01:59:03 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references; q=dns; s=default; b=hsG8XGjxayHseQVaX+IkEYuwohSSZRx m7PwWDWrf5EVSivsvARe8NTUelC+58uqNAn9NwjkeWRkd0NgUL9+5Jg3IARF70Yd fNjfKstPn9meQoFzDPRH9hHXRP9XjxuGMxefCA9FCuH6f/P33j0O2oJoY9qFyl6V PtQmHAXUHqcE= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references; s=default; bh=b94t4dbwLNfTiKgmqHcy7q8OJa8=; b=EcB9Q /XkoWXwpnvPz4COgCkFk2Vp15SpKLSpPnlP2ht8YYDPDvXCRpYcmIlc46zG66YtG p0uqAOId7QnxQ9PCiasCABHBiB5hcc1xVkhOzqzZCObtHGuDGulZ3Vdl5svLjV/n MFXCOaHXPAqozNaFESippEkI8dUsseyse7fFQo= Received: (qmail 106813 invoked by alias); 25 May 2018 15:58:40 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 106671 invoked by uid 89); 25 May 2018 15:58:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.1 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY autolearn=ham version=3.3.2 spammy= X-HELO: mga17.intel.com X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 From: leonardo.sandoval.gonzalez@linux.intel.com To: libc-alpha@sourceware.org Cc: Leonardo Sandoval Subject: [PATCH 2/3] benchtests: Add --no-header option to omit header Date: Fri, 25 May 2018 10:58:29 -0500 Message-Id: <20180525155830.6864-3-leonardo.sandoval.gonzalez@linux.intel.com> In-Reply-To: <20180525155830.6864-1-leonardo.sandoval.gonzalez@linux.intel.com> References: <20180525155830.6864-1-leonardo.sandoval.gonzalez@linux.intel.com> From: Leonardo Sandoval Having raw output without header makes easier the interaction with other tools, thus include an option to omit it. * benchtests/scripts/compare_string.py: Add --no-header option to omit header --- ChangeLog | 5 +++++ benchtests/scripts/compare_strings.py | 17 +++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index afddd77315a..cc3e50e3b8d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-05-25 Leonardo Sandoval + + * benchtests/scripts/compare_string.py: Add --no-header option + to omit header. + 2018-05-25 Leonardo Sandoval * benchtests/scripts/compare_string.py: Add --no-diff option diff --git a/benchtests/scripts/compare_strings.py b/benchtests/scripts/compare_strings.py index ceeccea13b6..c629bba77fa 100755 --- a/benchtests/scripts/compare_strings.py +++ b/benchtests/scripts/compare_strings.py @@ -79,7 +79,7 @@ def draw_graph(f, v, ifuncs, results): pylab.savefig('%s-%s.png' % (f, v), bbox_inches='tight') -def process_results(results, attrs, base_func, graph, no_diff): +def process_results(results, attrs, base_func, graph, no_diff, no_header): """ Process results and print them Args: @@ -88,16 +88,19 @@ def process_results(results, attrs, base_func, graph, no_diff): """ for f in results['functions'].keys(): - print('Function: %s' % f) + v = results['functions'][f]['bench-variant'] - print('Variant: %s' % v) base_index = 0 if base_func: base_index = results['functions'][f]['ifuncs'].index(base_func) - print("%36s%s" % (' ', '\t'.join(results['functions'][f]['ifuncs']))) - print("=" * 120) + if not no_header: + print('Function: %s' % f) + print('Variant: %s' % v) + print("%36s%s" % (' ', '\t'.join(results['functions'][f]['ifuncs']))) + print("=" * 120) + graph_res = {} for res in results['functions'][f]['results']: attr_list = ['%s=%s' % (a, res[a]) for a in attrs] @@ -133,7 +136,7 @@ def main(args): attrs = args.attributes.split(',') results = parse_file(args.input, args.schema) - process_results(results, attrs, base_func, args.graph, args.no_diff) + process_results(results, attrs, base_func, args.graph, args.no_diff, args.no_header) if __name__ == '__main__': @@ -155,6 +158,8 @@ if __name__ == '__main__': help='Generate a graph from results.') parser.add_argument('--no-diff', action='store_true', help='Do not include diff on .') + parser.add_argument('--no-header', action='store_true', + help='Do not include the header.') args = parser.parse_args() main(args) From patchwork Fri May 25 15:58:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leonardo Sandoval X-Patchwork-Id: 920632 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-92757-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.intel.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="mvrgG0Tw"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40srXc4JqLz9s0W for ; Sat, 26 May 2018 01:59:12 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references; q=dns; s=default; b=cmSngJhtYTTx5Ee0yXhwEY6WttJK2GI nO1pClYbIWmlMC20OpoU+YUH9GJ3N3aK2B3q3bmCSZF11V9+FqyuiUOQUVMqdm0K +bggFyrRb6xApzUUIl2bDIWSGCebH+uhxR0xdMUCRZL22T2hqBwqMUdbRESisKR7 gShQ6Ci2++iM= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references; s=default; bh=pdWjyhIk1b32/QIYp0Scp64qHYc=; b=mvrgG 0TwbFytm0ebXGFrIZ1/CqufEVyidQ3Llo2Pkk8pDi4IChoAcJvtxtdEHLgWMSvJa uauLKx73xG9OA/ZRwt0JVBlG/BFSt9BubJnLkgJ2FzJxBeYem4K3CyHETXwKhqWR UfAhFkBfAGkDmlT6GXCSUoijqyqqnXVaGys1BA= Received: (qmail 106882 invoked by alias); 25 May 2018 15:58:40 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 106760 invoked by uid 89); 25 May 2018 15:58:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY autolearn=ham version=3.3.2 spammy=1735 X-HELO: mga17.intel.com X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 From: leonardo.sandoval.gonzalez@linux.intel.com To: libc-alpha@sourceware.org Cc: Leonardo Sandoval Subject: [PATCH 3/3] benchtests: Catch exceptions in input arguments Date: Fri, 25 May 2018 10:58:30 -0500 Message-Id: <20180525155830.6864-4-leonardo.sandoval.gonzalez@linux.intel.com> In-Reply-To: <20180525155830.6864-1-leonardo.sandoval.gonzalez@linux.intel.com> References: <20180525155830.6864-1-leonardo.sandoval.gonzalez@linux.intel.com> From: Leonardo Sandoval Catch runtime exceptions in case the user provided either wrong base function or attribute(s). In any of the latter, quit immediately with non-zero return code. * benchtests/scripts/compare_string.py: (process_results) Catch exception in non-existent base_func. (process_results) Catch exception in non-existent attribute. --- ChangeLog | 6 ++++++ benchtests/scripts/compare_strings.py | 16 ++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index cc3e50e3b8d..20d55a47759 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2018-05-25 Leonardo Sandoval + + * benchtests/scripts/compare_string.py: (process_results) Catch + exception in non-existent base_func. + (process_results) Catch exception in non-existent attribute + 2018-05-25 Leonardo Sandoval * benchtests/scripts/compare_string.py: Add --no-header option diff --git a/benchtests/scripts/compare_strings.py b/benchtests/scripts/compare_strings.py index c629bba77fa..077b53fa6c9 100755 --- a/benchtests/scripts/compare_strings.py +++ b/benchtests/scripts/compare_strings.py @@ -93,7 +93,12 @@ def process_results(results, attrs, base_func, graph, no_diff, no_header): base_index = 0 if base_func: - base_index = results['functions'][f]['ifuncs'].index(base_func) + try: + base_index = results['functions'][f]['ifuncs'].index(base_func) + except ValueError as ve: + sys.stderr.write('Invalid -b "%s" parameter. Options: %s.\n' % (base_func, + ', '.join(results['functions'][f]['ifuncs']))) + sys.exit(os.EX_DATAERR) if not no_header: print('Function: %s' % f) @@ -103,7 +108,12 @@ def process_results(results, attrs, base_func, graph, no_diff, no_header): graph_res = {} for res in results['functions'][f]['results']: - attr_list = ['%s=%s' % (a, res[a]) for a in attrs] + try: + attr_list = ['%s=%s' % (a, res[a]) for a in attrs] + except KeyError as ke: + sys.stderr.write('Invalid -a %s parameter. Options: %s.\n' % (ke, + ', '.join([a for a in res.keys() if a != 'timings']))) + sys.exit(os.EX_DATAERR) i = 0 key = ', '.join(attr_list) sys.stdout.write('%36s: ' % key) @@ -163,3 +173,5 @@ if __name__ == '__main__': args = parser.parse_args() main(args) + + return os.EX_OK