From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752869AbcCGOgj (ORCPT ); Mon, 7 Mar 2016 09:36:39 -0500 Received: from mail-pa0-f45.google.com ([209.85.220.45]:34807 "EHLO mail-pa0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752401AbcCGOgc (ORCPT ); Mon, 7 Mar 2016 09:36:32 -0500 From: Namhyung Kim To: Arnaldo Carvalho de Melo Cc: Ingo Molnar , Peter Zijlstra , Jiri Olsa , LKML , David Ahern , Andi Kleen , Stephane Eranian , Wang Nan Subject: [PATCHSET 0/7] perf tools: Support multiple keys in a single hierarchy level (v3) Date: Mon, 7 Mar 2016 23:35:01 +0900 Message-Id: <1457361308-514-1-git-send-email-namhyung@kernel.org> X-Mailer: git-send-email 2.7.2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, This implements what Arnaldo suggested in previous discussion of hierarchy patchset [1]. Originally each level in a hierarchy can have a single sort key in it, but with this patches it's possible to have more than one sort keys using a syntax similar to event grouping. I added the struct perf_hpp_list_node and carry it to group output formats (hpp_fmt) in a single level. * Changes from v2) - fix segfault on perf top (Arnaldo) - add hpp_list_node->skip (Jiri) * Changes from v1) - use '{ }' to group sort keys (Arnaldo) - cleanup hpp_list_node creation (Jiri) Example below shows how 4 sort keys are used for 2 levels. As you can see, the first level shows pid and comm of previous (switched) task and the second level shows pid and comm of next task. $ perf report --hierarchy -s '{prev_pid,prev_comm},{next_pid,next_comm}' \ --percent-limit 1 -i perf.data.sched ... # Overhead prev_pid+prev_comm / next_pid+next_comm # ........... ....................................... # 22.36% 0 swapper/0 9.48% 17773 transmission-gt 5.25% 109 kworker/0:1H 1.53% 6524 Xephyr 21.39% 17773 transmission-gt 9.52% 0 swapper/0 9.04% 0 swapper/2 1.78% 0 swapper/3 It's available on the 'perf/hierarchy-multi-v3' branch in my tree git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git Any feedbacks are welcome Thanks, Namhyung [1] https://lkml.org/lkml/2016/2/24/1041 Namhyung Kim (7): perf tools: Introduce perf_hpp__setup_hists_formats() perf tools: Use own hpp_list for hierarchy mode perf tools: Support multiple sort keys in a hierarchy level perf tools: Fix indent for multiple hierarchy sort key perf report: Use hierarchy hpp list on stdio perf hists browser: Use hierarchy hpp list perf report: Use hierarchy hpp list on gtk tools/perf/ui/browsers/hists.c | 147 +++++++++++++++++++---------------- tools/perf/ui/gtk/hists.c | 73 +++++++++++------- tools/perf/ui/hist.c | 69 +++++++++++++++++ tools/perf/ui/stdio/hist.c | 171 +++++++++++++++++++++-------------------- tools/perf/util/hist.c | 72 +++++++++++------ tools/perf/util/hist.h | 13 ++++ tools/perf/util/sort.c | 74 +++++++++++++++--- tools/perf/util/sort.h | 1 + 8 files changed, 408 insertions(+), 212 deletions(-) -- 2.7.2