Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp2317557imm; Thu, 20 Sep 2018 11:06:36 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYsVbujCviGVj50gmCwDJa6/Q8t4mrqDhdeDcG1XP2OalVD3nZAaXHloC2SzSSnOlEfKZrJ X-Received: by 2002:a63:5321:: with SMTP id h33-v6mr6293435pgb.139.1537466796724; Thu, 20 Sep 2018 11:06:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537466796; cv=none; d=google.com; s=arc-20160816; b=MHXnjhV7XaYYd0a4zXcYu0Ve9pscMkF2fJtquOIDNnLZW2styl9lpnulAI1Ghom1p+ +3Sgy6vT8ssVcGT4cpPQaF55jEryAZ9BJR7H/2oU0ELLoqBkBdZ4CZTtHz+1me40ifxo rV+T0GAipuveBCjwk1breLsPunoBm4xgkEruTiXiOF7oYKBOroIncOTjo0vBSjqoN9ko rmbmllfcqo9ijLP/nt/Uy4QV/Mz+EWVE57/oww0KW40UXut58H5W82MkuKdoSeZc5TP9 tW007ubkzxdFHrTdsKgP/08jpCOj84sc3265gaWgIPTbO1dIBNE2AP/rKLOo7c8U3n6Q Pudw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=xfLtAY54ZK3Dvj4EkmxU3S6zvoO28Vsi30yYwCg5aas=; b=tQcAnK8BCsrldwNXXRFa+tpM1WqDCI4OcxBxWsjxhmai5yvTDoEl+6/Hb7l60kdNwy 1ulajaP+S6JhPY6Q880HuYIbv+QJ7+Y6eJh9b6R0JmDK09IHcV/Lo7QMSngZ47gjJBjP ftMYRktxKJWklH93dTtt3R06HSU6n8CuI2ODdHMdXqw+9BIBZAjLvWPbXHloOjYZoC30 lcZVvrgbBl89k1jtPvY65+502kAbvDikhVflAYC0o2sFjG2sRzuroL91KbuQpCV9Hx8G CLyqm4kDtOoMb2pnu7OoAqEG3n0sCjBRD5XEFgDnpdaquD/vN8+GsuK3S1gCf2cXiFTf KR3A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g12-v6si2788163plm.142.2018.09.20.11.06.13; Thu, 20 Sep 2018 11:06:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388024AbeITXuX (ORCPT + 99 others); Thu, 20 Sep 2018 19:50:23 -0400 Received: from mga04.intel.com ([192.55.52.120]:43655 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732757AbeITXuX (ORCPT ); Thu, 20 Sep 2018 19:50:23 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Sep 2018 11:05:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,281,1534834800"; d="scan'208";a="258940398" Received: from tassilo.jf.intel.com (HELO tassilo.localdomain) ([10.7.201.126]) by orsmga005.jf.intel.com with ESMTP; 20 Sep 2018 11:05:42 -0700 Received: by tassilo.localdomain (Postfix, from userid 1000) id 89924301A93; Thu, 20 Sep 2018 11:05:42 -0700 (PDT) From: Andi Kleen To: acme@kernel.org Cc: jolsa@kernel.org, linux-kernel@vger.kernel.org Subject: Make perf script easier to use for itrace Date: Thu, 20 Sep 2018 11:05:35 -0700 Message-Id: <20180920180540.14039-1-andi@firstfloor.org> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Implement a range of improvements to make it easier to look at itrace traces with perf script. Nothing here couldn't be done before with some additional scripting, but add simple high level options to make it easier to use. % perf record -e intel_pt//k -a sleep 1 Show function calls: % perf script --call-trace perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_pmu_enable perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __x86_indirect_thunk_rax perf 900 [000] 194167.205652203: ([kernel.kallsyms]) event_filter_match perf 900 [000] 194167.205652203: ([kernel.kallsyms]) group_sched_in perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __x86_indirect_thunk_rax perf 900 [000] 194167.205652203: ([kernel.kallsyms]) event_sched_in.isra.107 perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_event_set_state.part.71 perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_event_update_time perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_pmu_disable perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_log_itrace_start perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __x86_indirect_thunk_rax perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_event_update_userpage Show function calls and returns: % perf script --call-ret-trace perf 900 [000] 194167.205652203: tr strt ([unknown]) pt_config perf 900 [000] 194167.205652203: return ([kernel.kallsyms]) pt_config perf 900 [000] 194167.205652203: return ([kernel.kallsyms]) pt_event_add perf 900 [000] 194167.205652203: call ([kernel.kallsyms]) perf_pmu_enable perf 900 [000] 194167.205652203: return ([kernel.kallsyms]) perf_pmu_nop_void perf 900 [000] 194167.205652203: return ([kernel.kallsyms]) event_sched_in.isra.107 perf 900 [000] 194167.205652203: call ([kernel.kallsyms]) __x86_indirect_thunk_rax perf 900 [000] 194167.205652203: return ([kernel.kallsyms]) perf_pmu_nop_int perf 900 [000] 194167.205652203: return ([kernel.kallsyms]) group_sched_in perf 900 [000] 194167.205652203: call ([kernel.kallsyms]) event_filter_match perf 900 [000] 194167.205652203: return ([kernel.kallsyms]) event_filter_match perf 900 [000] 194167.205652203: call ([kernel.kallsyms]) group_sched_in Show instruction traces (using XED): % perf script --insn-trace --xed swapper 0 [000] 117276.429606186: ffffffff81010486 pt_config ([kernel.kallsyms]) nopl %eax, (%rax,%rax,1) swapper 0 [000] 117276.429606186: ffffffff8101048b pt_config ([kernel.kallsyms]) add $0x10, %rsp swapper 0 [000] 117276.429606186: ffffffff8101048f pt_config ([kernel.kallsyms]) popq %rbx swapper 0 [000] 117276.429606186: ffffffff81010490 pt_config ([kernel.kallsyms]) popq %rbp swapper 0 [000] 117276.429606186: ffffffff81010491 pt_config ([kernel.kallsyms]) popq %r12 swapper 0 [000] 117276.429606186: ffffffff81010493 pt_config ([kernel.kallsyms]) popq %r13 swapper 0 [000] 117276.429606186: ffffffff81010495 pt_config ([kernel.kallsyms]) popq %r14 swapper 0 [000] 117276.429606186: ffffffff81010497 pt_config ([kernel.kallsyms]) popq %r15 swapper 0 [000] 117276.429606186: ffffffff81010499 pt_config ([kernel.kallsyms]) retq Filter by a ftrace style graph function: % perf script --graph-function group_sched_in --call-trace perf 900 [000] 194167.205652203: ([kernel.kallsyms]) group_sched_in perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __x86_indirect_thunk_rax perf 900 [000] 194167.205652203: ([kernel.kallsyms]) event_sched_in.isra.107 perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_event_set_state.part.71 perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_event_update_time perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_pmu_disable perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_log_itrace_start perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __x86_indirect_thunk_rax perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_event_update_userpage perf 900 [000] 194167.205652203: ([kernel.kallsyms]) calc_timer_values perf 900 [000] 194167.205652203: ([kernel.kallsyms]) sched_clock_cpu perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __x86_indirect_thunk_rax perf 900 [000] 194167.205652203: ([kernel.kallsyms]) arch_perf_update_userpage perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __fentry__ perf 900 [000] 194167.205652203: ([kernel.kallsyms]) using_native_sched_clock perf 900 [000] 194167.205652203: ([kernel.kallsyms]) sched_clock_stable perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_pmu_enable perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __x86_indirect_thunk_rax Also available in git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-misc.git pt/easy-script-7 v1: Initial post v2: Address review comments. Minor fixes to descriptions. Now builds everywhere. v3: Merge wildcard+remove addr/sym patch for one logical review unit. Drop typed remove patch Fix build failure on ARM ETM builds. Fix git branch number. v4: Remove debug printout. Really fix ETM build failure (Kim Phillips) v5: Split out --xed into separate option to handle other architectures better, and support brstackinsn too. Add total cycles printing for brstackinsn v6: Document xed build. Change code formatting for one patch.