Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2574085pxb; Tue, 9 Mar 2021 06:08:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJy+0cwPnSjminSFOS5vt747XGNd8D/Y4eKLvDdIoWXk7KMCngh6dbjT3IeqIpPyEoTxRDrI X-Received: by 2002:a5d:404d:: with SMTP id w13mr28454200wrp.230.1615298887404; Tue, 09 Mar 2021 06:08:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615298887; cv=none; d=google.com; s=arc-20160816; b=TcaxPf7punP//gmQN5BA78iqp/O7NwheFeIUBIiulizME6VZFtfqeye1xHinC1isM7 e4UTqs7KNr6jG2RdRdYMYgMdt2YG5dKdMqT20z1V/RIacuvIFmYiDpmDn5LEFV3vV5Iv RTvXDrgCLUb9C9MrxqTd19WarMW0Rou+LEEBMEat9yAeudbZLrvF6x4xPTkWIxoP8Q+j LPuso3ADXXdPRa1N6TStOL4QHiJVMr/kaCgBPbR+7it6/kGPRswVIc1N/MMjGm7PNRLk NU0V9baKKFy9OAgTRghHEX9aZFv/mRLQpN3S+JEEz4qIewIiYzIEBL9f6A//bh8yEgB7 ysZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from :dkim-signature; bh=Ikl7VIhMOKpIIZvsB3C1Do5nOeGwC2ju/uCK6iEwNh8=; b=xcDT0iVvQpbojqvgBPEcqT3w/IIB4PiWFsKs9QAUtHcT5EyjBcPTYDzejo7GiclFwi qTEtIWSz9/cM+C+TCVQRLbFnGAJeOml2Z+g7m6mHCBJ5xj5Hl/ywUNVu3iamvQHaKKLG p+CrEpOjQP0Pn9+559DB9jFIZd4wD5oKwpAcGkzvr/q2FjyoPPTMZz2y31hDuC8bldoE vbQAT5dtJzupvxwUe/fpYh48bJH5uEKlK0uPph4QuB+9JFXt+pbHLh8EDstPMIHNYz49 L11edWv8lMboGz1OAwiJhy+MBzRay/C/YR1pZf+zzB6AmT/TTKqCb5ziyk8CY8Wg29rS D5nw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=O7tDaFlI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id zc18si8869515ejb.148.2021.03.09.06.07.40; Tue, 09 Mar 2021 06:08:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=O7tDaFlI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231516AbhCIOGn (ORCPT + 99 others); Tue, 9 Mar 2021 09:06:43 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:21684 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231300AbhCIOG3 (ORCPT ); Tue, 9 Mar 2021 09:06:29 -0500 Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 129E2piD045088; Tue, 9 Mar 2021 09:06:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id; s=pp1; bh=Ikl7VIhMOKpIIZvsB3C1Do5nOeGwC2ju/uCK6iEwNh8=; b=O7tDaFlI1iuU+gOnTpd1MjeZaMzi7OR+bsE/Vcm2j0gIKKAYRsnWnw7iUXUKcBvOWUHB wX/6nAEnfgJzHlEFut6oPcv+dRc2VKxXRA5J7gitNYmcYmst7Coiqq02mCg/gnMnU1JG odtUv3hK5EE7vta5YBTfHzKu2L8SynRf3mJ2cikU/30Hep+DnTYD7h01+FEDqlLjeHAR 1T58ChLA3sruKCrhSvQ7E5Q2vprDBEr1W7+1qzE6BwVDCBsNUn05ABJrImjRQVPSnv5W U9j4D/a7vQkEiU3/IpnP4jwmP7hb6MnP/NDxAt9WUp6dNTvqTAGOaA+A3tBoxI3qmwJv fA== Received: from ppma03fra.de.ibm.com (6b.4a.5195.ip4.static.sl-reverse.com [149.81.74.107]) by mx0a-001b2d01.pphosted.com with ESMTP id 37640j3v9y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Mar 2021 09:06:06 -0500 Received: from pps.filterd (ppma03fra.de.ibm.com [127.0.0.1]) by ppma03fra.de.ibm.com (8.16.0.43/8.16.0.43) with SMTP id 129E3OxA022407; Tue, 9 Mar 2021 14:06:04 GMT Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by ppma03fra.de.ibm.com with ESMTP id 3768mpr1sy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Mar 2021 14:06:04 +0000 Received: from d06av22.portsmouth.uk.ibm.com (d06av22.portsmouth.uk.ibm.com [9.149.105.58]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 129E61Uu38011212 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 9 Mar 2021 14:06:01 GMT Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E9F514C052; Tue, 9 Mar 2021 14:06:00 +0000 (GMT) Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8DB224C044; Tue, 9 Mar 2021 14:04:21 +0000 (GMT) Received: from localhost.localdomain.localdomain (unknown [9.195.34.70]) by d06av22.portsmouth.uk.ibm.com (Postfix) with ESMTP; Tue, 9 Mar 2021 14:04:19 +0000 (GMT) From: Athira Rajeev To: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mpe@ellerman.id.au, acme@kernel.org, jolsa@kernel.org Cc: maddy@linux.ibm.com, ravi.bangoria@linux.ibm.com, kjain@linux.ibm.com, kan.liang@linux.intel.com, peterz@infradead.org Subject: [PATCH 0/4] powerpc/perf: Export processor pipeline stage cycles information Date: Tue, 9 Mar 2021 09:03:56 -0500 Message-Id: <1615298640-1529-1-git-send-email-atrajeev@linux.vnet.ibm.com> X-Mailer: git-send-email 1.8.3.1 X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369,18.0.761 definitions=2021-03-09_11:2021-03-08,2021-03-09 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 mlxlogscore=999 clxscore=1015 spamscore=0 impostorscore=0 mlxscore=0 suspectscore=0 phishscore=0 lowpriorityscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103090071 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Performance Monitoring Unit (PMU) registers in powerpc exports number of cycles elapsed between different stages in the pipeline. Example, sampling registers in ISA v3.1. This patchset implements kernel and perf tools support to expose these pipeline stage cycles using the sample type PERF_SAMPLE_WEIGHT_TYPE. Patch 1/4 adds kernel side support to store the cycle counter values as part of 'var2_w' and 'var3_w' fields of perf_sample_weight structure. Patch 2/4 adds support to make the perf report column header strings as dynamic. Patch 3/4 adds powerpc support in perf tools for PERF_SAMPLE_WEIGHT_STRUCT in sample type: PERF_SAMPLE_WEIGHT_TYPE. Patch 4/4 adds support to present pipeline stage cycles as part of mem-mode. Sample output on powerpc: # perf mem record ls # perf mem report # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 11 of event 'cpu/mem-loads/' # Total weight : 1332 # Sort order : local_weight,mem,sym,dso,symbol_daddr,dso_daddr,snoop,tlb,locked,blocked,local_ins_lat,stall_cyc # # Overhead Samples Local Weight Memory access Symbol Shared Object Data Symbol Data Object Snoop TLB access Locked Blocked Finish Cyc Dispatch Cyc # ........ ............ ............ ........................ .................................. ................ ............................................. ..................... ............ ...................... ...... .......... ............. ............. # 44.14% 1 588 L1 hit [k] rcu_nmi_exit [kernel.vmlinux] [k] 0xc0000007ffdd21b0 [unknown] N/A N/A No N/A 7 5 22.22% 1 296 L1 hit [k] copypage_power7 [kernel.vmlinux] [k] 0xc0000000ff6a1780 [unknown] N/A N/A No N/A 293 3 6.98% 1 93 L1 hit [.] _dl_addr libc-2.31.so [.] 0x00007fff86fa5058 libc-2.31.so N/A N/A No N/A 7 1 6.61% 1 88 L2 hit [.] new_do_write libc-2.31.so [.] _IO_2_1_stdout_+0x0 libc-2.31.so N/A N/A No N/A 84 1 5.93% 1 79 L1 hit [k] printk_nmi_exit [kernel.vmlinux] [k] 0xc0000006085df6b0 [unknown] N/A N/A No N/A 7 1 4.05% 1 54 L2 hit [.] __alloc_dir libc-2.31.so [.] 0x00007fffdb70a640 [stack] N/A N/A No N/A 18 1 3.60% 1 48 L1 hit [.] _init ls [.] 0x000000016ca82118 [heap] N/A N/A No N/A 7 6 2.40% 1 32 L1 hit [k] desc_read [kernel.vmlinux] [k] _printk_rb_static_descs+0x1ea10 [kernel.vmlinux].data N/A N/A No N/A 7 1 1.65% 1 22 L2 hit [k] perf_iterate_ctx.constprop.139 [kernel.vmlinux] [k] 0xc00000064d79e8a8 [unknown] N/A N/A No N/A 16 1 1.58% 1 21 L1 hit [k] perf_event_interrupt [kernel.vmlinux] [k] 0xc0000006085df6b0 [unknown] N/A N/A No N/A 7 1 0.83% 1 11 L1 hit [k] perf_event_exec [kernel.vmlinux] [k] 0xc0000007ffdd3288 [unknown] N/A N/A No N/A 7 4 Athira Rajeev (4): powerpc/perf: Expose processor pipeline stage cycles using PERF_SAMPLE_WEIGHT_STRUCT tools/perf: Add dynamic headers for perf report columns tools/perf: Add powerpc support for PERF_SAMPLE_WEIGHT_STRUCT tools/perf: Support pipeline stage cycles for powerpc arch/powerpc/include/asm/perf_event_server.h | 2 +- arch/powerpc/perf/core-book3s.c | 4 +-- arch/powerpc/perf/isa207-common.c | 29 ++++++++++++++++-- arch/powerpc/perf/isa207-common.h | 6 +++- tools/perf/Documentation/perf-report.txt | 1 + tools/perf/arch/powerpc/util/Build | 2 ++ tools/perf/arch/powerpc/util/event.c | 46 ++++++++++++++++++++++++++++ tools/perf/arch/powerpc/util/evsel.c | 8 +++++ tools/perf/util/event.h | 2 ++ tools/perf/util/hist.c | 11 +++++-- tools/perf/util/hist.h | 1 + tools/perf/util/session.c | 4 ++- tools/perf/util/sort.c | 41 +++++++++++++++++++++++-- tools/perf/util/sort.h | 2 ++ 14 files changed, 146 insertions(+), 13 deletions(-) create mode 100644 tools/perf/arch/powerpc/util/event.c create mode 100644 tools/perf/arch/powerpc/util/evsel.c -- 1.8.3.1