From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2D42AC433F5 for ; Mon, 27 Sep 2021 12:34:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0B7A260FF2 for ; Mon, 27 Sep 2021 12:34:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234350AbhI0Mf7 (ORCPT ); Mon, 27 Sep 2021 08:35:59 -0400 Received: from mail.kernel.org ([198.145.29.99]:54608 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234380AbhI0Mf7 (ORCPT ); Mon, 27 Sep 2021 08:35:59 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7ECEC60F41; Mon, 27 Sep 2021 12:34:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1632746061; bh=D+5/8tHCQxdmWTOlYcOv1iIAUp7sdgYnP5xXPObXi1I=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=jGl+I3enIxJKufmTuRxiGyGny5Uqc+2WEAxMwMZODl9SZo8AtZRCOPfW/e35tnmj5 hTHi1XNUiltYTMu68VYxXYn8qMclPOOdp1iG4xJJZwYbO6xkiIx7qlD4F/PAvC0CO8 APu+G76FVFw47Ib0IjAtuNX3esgJYZwbz8zgcITWfKtCmJKZjk3MmHXt26R+T1ENgv gAzGS7piBrm7zonQkndmC4xbrVQHtcLdhasoPaIxp4rEi1RgkohRN4fNFSJtL/Pq0H qE7zdmNFkibGYyIm8EGHShVTh1gyY7hD8qPncW2phGulMeBakllVOqj/e1J6QLbWrb UrlyawfD8W/pw== Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 1027F410A1; Mon, 27 Sep 2021 09:34:19 -0300 (-03) Date: Mon, 27 Sep 2021 09:34:19 -0300 From: Arnaldo Carvalho de Melo To: William Cohen Cc: peterz@infradead.org, mingo@redhat.com, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@redhat.com, namhyung@kernel.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, linux-riscv@lists.infradead.org Subject: Re: [PATCH] perf annotate: Add riscv64 support Message-ID: References: <20210927005115.610264-1-wcohen@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210927005115.610264-1-wcohen@redhat.com> X-Url: http://acmel.wordpress.com Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org Em Sun, Sep 26, 2021 at 08:51:15PM -0400, William Cohen escreveu: > This patch adds basic arch initialization and instruction associate > support for the riscv64 CPU architecture. > > Example output: > > $ perf annotate --stdio2 > Samples: 122K of event 'task-clock:u', 4000 Hz, Event count (approx.): 30637250000, [percent: local period] > strcmp() /usr/lib64/libc-2.32.so > Percent > > Disassembly of section .text: > > 0000000000069a30 : > __GI_strcmp(): > const unsigned char *s2 = (const unsigned char *) p2; > unsigned char c1, c2; > > do > { > c1 = (unsigned char) *s1++; > 37.30 lbu a5,0(a0) > c2 = (unsigned char) *s2++; > 1.23 addi a1,a1,1 > c1 = (unsigned char) *s1++; > 18.68 addi a0,a0,1 > c2 = (unsigned char) *s2++; > 1.37 lbu a4,-1(a1) > if (c1 == '\0') > 18.71 ↓ beqz a5,18 > return c1 - c2; > } Thanks, applied. - Arnaldo > Signed-off-by: William Cohen > --- > .../perf/arch/riscv64/annotate/instructions.c | 34 +++++++++++++++++++ > tools/perf/util/annotate.c | 5 +++ > 2 files changed, 39 insertions(+) > create mode 100644 tools/perf/arch/riscv64/annotate/instructions.c > > diff --git a/tools/perf/arch/riscv64/annotate/instructions.c b/tools/perf/arch/riscv64/annotate/instructions.c > new file mode 100644 > index 000000000000..869a0eb28953 > --- /dev/null > +++ b/tools/perf/arch/riscv64/annotate/instructions.c > @@ -0,0 +1,34 @@ > +// SPDX-License-Identifier: GPL-2.0 > + > +static > +struct ins_ops *riscv64__associate_ins_ops(struct arch *arch, const char *name) > +{ > + struct ins_ops *ops = NULL; > + > + if (!strncmp(name, "jal", 3) || > + !strncmp(name, "jr", 2) || > + !strncmp(name, "call", 4)) > + ops = &call_ops; > + else if (!strncmp(name, "ret", 3)) > + ops = &ret_ops; > + else if (name[0] == 'j' || name[0] == 'b') > + ops = &jump_ops; > + else > + return NULL; > + > + arch__associate_ins_ops(arch, name, ops); > + > + return ops; > +} > + > +static > +int riscv64__annotate_init(struct arch *arch, char *cpuid __maybe_unused) > +{ > + if (!arch->initialized) { > + arch->associate_instruction_ops = riscv64__associate_ins_ops; > + arch->initialized = true; > + arch->objdump.comment_char = '#'; > + } > + > + return 0; > +} > diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c > index 0bae061b2d6d..d919fa993872 100644 > --- a/tools/perf/util/annotate.c > +++ b/tools/perf/util/annotate.c > @@ -151,6 +151,7 @@ static int arch__associate_ins_ops(struct arch* arch, const char *name, struct i > #include "arch/mips/annotate/instructions.c" > #include "arch/x86/annotate/instructions.c" > #include "arch/powerpc/annotate/instructions.c" > +#include "arch/riscv64/annotate/instructions.c" > #include "arch/s390/annotate/instructions.c" > #include "arch/sparc/annotate/instructions.c" > > @@ -192,6 +193,10 @@ static struct arch architectures[] = { > .name = "powerpc", > .init = powerpc__annotate_init, > }, > + { > + .name = "riscv64", > + .init = riscv64__annotate_init, > + }, > { > .name = "s390", > .init = s390__annotate_init, > -- > 2.27.0 -- - Arnaldo From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 27FBCC433EF for ; Mon, 27 Sep 2021 12:35:43 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E258A60FF2 for ; Mon, 27 Sep 2021 12:35:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E258A60FF2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=7YedT1NgBQPbu6zopUefsWpZlEtIkfiqBAJsVFm+6ec=; b=uXxp1UgVR8vdeh VllUOTlmuIt7Dqa0bG4lhXRp1swdll5Hi8gHx/iwYGdcp3UIlN03dRXl6zzfwulG9clUISWMDvUzs gFwSLToz6ML5jhRslhqmtYlevVLYIb4t6T53r9Bi1lZbHf8ZGeUz3a87NXZ/YE4OAIAdjUEz91HeQ IFopxBfme+QXlzv/dnKmVEcWE+XtwbeqL+BnDRR+XY+VzXHObTdXm9DJM+iw45ad9vieYOxVNgccl z24X7yLndozT70q5aE7hIeazIVh1F3DQZcbaptAHm2YAMv2EodJI8VktghFr24dFg581UpPRioSgu 5DylOlyWNAw9lRhxaFQg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mUpqu-002dVD-Ph; Mon, 27 Sep 2021 12:35:24 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mUpqt-002dU6-Kb for linux-riscv@bombadil.infradead.org; Mon, 27 Sep 2021 12:35:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=SIFWB2JmltcqNv/KhYtKtRA8466rj25R6iWQXdLJ5L8=; b=DMSsBA3CtegcgPSXmtBCuzbG8Y 1CJ3P8iskCAYd2SSy8BO1XVjraHRkPAsX3s5a+CJY/EXRPONwn+jnSSpGAN5VfA8a2sJCEX3yhE05 a6dX9gIKjIIPkADLlAqwWUx6hP0Y15YiHNSZLCFfGNtdV2Zqui6qEJpnnXJybwizJImeawWXDp0Nz DfZtw7cnqnpfX46XrfglmbPiA8Hme3FsQB0oQJ7Aa2D2OvIvRC5nsDAEbQJBIOTywnPn7RbKmfx6W 7Gl8TyfR8GteM5ZH2IHC4e7CO3T5wTCv8e4bWUW93O/UNqvyZc5CzIDqAGtlDYyjmwV56+DcbQ5/q PyOqVlQw==; Received: from [179.97.37.151] (helo=quaco.ghostprotocols.net) by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1mUppv-009kRp-As; Mon, 27 Sep 2021 12:34:35 +0000 Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 1027F410A1; Mon, 27 Sep 2021 09:34:19 -0300 (-03) Date: Mon, 27 Sep 2021 09:34:19 -0300 From: Arnaldo Carvalho de Melo To: William Cohen Cc: peterz@infradead.org, mingo@redhat.com, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@redhat.com, namhyung@kernel.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, linux-riscv@lists.infradead.org Subject: Re: [PATCH] perf annotate: Add riscv64 support Message-ID: References: <20210927005115.610264-1-wcohen@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210927005115.610264-1-wcohen@redhat.com> X-Url: http://acmel.wordpress.com X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org RW0gU3VuLCBTZXAgMjYsIDIwMjEgYXQgMDg6NTE6MTVQTSAtMDQwMCwgV2lsbGlhbSBDb2hlbiBl c2NyZXZldToKPiBUaGlzIHBhdGNoIGFkZHMgYmFzaWMgYXJjaCBpbml0aWFsaXphdGlvbiBhbmQg aW5zdHJ1Y3Rpb24gYXNzb2NpYXRlCj4gc3VwcG9ydCBmb3IgdGhlIHJpc2N2NjQgQ1BVIGFyY2hp dGVjdHVyZS4KPiAKPiBFeGFtcGxlIG91dHB1dDoKPiAKPiAgICQgcGVyZiBhbm5vdGF0ZSAtLXN0 ZGlvMgo+ICAgU2FtcGxlczogMTIySyBvZiBldmVudCAndGFzay1jbG9jazp1JywgNDAwMCBIeiwg RXZlbnQgY291bnQgKGFwcHJveC4pOiAzMDYzNzI1MDAwMCwgW3BlcmNlbnQ6IGxvY2FsIHBlcmlv ZF0KPiAgIHN0cmNtcCgpIC91c3IvbGliNjQvbGliYy0yLjMyLnNvCj4gICBQZXJjZW50Cj4gCj4g CSAgICAgIERpc2Fzc2VtYmx5IG9mIHNlY3Rpb24gLnRleHQ6Cj4gCj4gCSAgICAgIDAwMDAwMDAw MDAwNjlhMzAgPHN0cmNtcD46Cj4gCSAgICAgIF9fR0lfc3RyY21wKCk6Cj4gCSAgICAgIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKnMyID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgcDI7Cj4gCSAgICAg IHVuc2lnbmVkIGNoYXIgYzEsIGMyOwo+IAo+IAkgICAgICBkbwo+IAkgICAgICB7Cj4gCSAgICAg IGMxID0gKHVuc2lnbmVkIGNoYXIpICpzMSsrOwo+ICAgIDM3LjMwICAgICAgICBsYnUgIGE1LDAo YTApCj4gCSAgICAgIGMyID0gKHVuc2lnbmVkIGNoYXIpICpzMisrOwo+ICAgICAxLjIzICAgICAg ICBhZGRpIGExLGExLDEKPiAJICAgICAgYzEgPSAodW5zaWduZWQgY2hhcikgKnMxKys7Cj4gICAg MTguNjggICAgICAgIGFkZGkgYTAsYTAsMQo+IAkgICAgICBjMiA9ICh1bnNpZ25lZCBjaGFyKSAq czIrKzsKPiAgICAgMS4zNyAgICAgICAgbGJ1ICBhNCwtMShhMSkKPiAJICAgICAgaWYgKGMxID09 ICdcMCcpCj4gICAgMTguNzEgICAgICDihpMgYmVxeiBhNSwxOAo+IAkgICAgICAgcmV0dXJuIGMx IC0gYzI7Cj4gCSAgICAgICB9CgpUaGFua3MsIGFwcGxpZWQuCgotIEFybmFsZG8KCiAKPiBTaWdu ZWQtb2ZmLWJ5OiBXaWxsaWFtIENvaGVuIDx3Y29oZW5AcmVkaGF0LmNvbT4KPiAtLS0KPiAgLi4u L3BlcmYvYXJjaC9yaXNjdjY0L2Fubm90YXRlL2luc3RydWN0aW9ucy5jIHwgMzQgKysrKysrKysr KysrKysrKysrKwo+ICB0b29scy9wZXJmL3V0aWwvYW5ub3RhdGUuYyAgICAgICAgICAgICAgICAg ICAgfCAgNSArKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspCj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCB0b29scy9wZXJmL2FyY2gvcmlzY3Y2NC9hbm5vdGF0ZS9pbnN0cnVjdGlv bnMuYwo+IAo+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvcmlzY3Y2NC9hbm5vdGF0ZS9p bnN0cnVjdGlvbnMuYyBiL3Rvb2xzL3BlcmYvYXJjaC9yaXNjdjY0L2Fubm90YXRlL2luc3RydWN0 aW9ucy5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjg2OWEw ZWIyODk1Mwo+IC0tLSAvZGV2L251bGwKPiArKysgYi90b29scy9wZXJmL2FyY2gvcmlzY3Y2NC9h bm5vdGF0ZS9pbnN0cnVjdGlvbnMuYwo+IEBAIC0wLDAgKzEsMzQgQEAKPiArLy8gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiArCj4gK3N0YXRpYwo+ICtzdHJ1Y3QgaW5zX29wcyAq cmlzY3Y2NF9fYXNzb2NpYXRlX2luc19vcHMoc3RydWN0IGFyY2ggKmFyY2gsIGNvbnN0IGNoYXIg Km5hbWUpCj4gK3sKPiArCXN0cnVjdCBpbnNfb3BzICpvcHMgPSBOVUxMOwo+ICsKPiArCWlmICgh c3RybmNtcChuYW1lLCAiamFsIiwgMykgfHwKPiArCSAgICAhc3RybmNtcChuYW1lLCAianIiLCAy KSB8fAo+ICsJICAgICFzdHJuY21wKG5hbWUsICJjYWxsIiwgNCkpCj4gKwkJb3BzID0gJmNhbGxf b3BzOwo+ICsJZWxzZSBpZiAoIXN0cm5jbXAobmFtZSwgInJldCIsIDMpKQo+ICsJCW9wcyA9ICZy ZXRfb3BzOwo+ICsJZWxzZSBpZiAobmFtZVswXSA9PSAnaicgfHwgbmFtZVswXSA9PSAnYicpCj4g KwkJb3BzID0gJmp1bXBfb3BzOwo+ICsJZWxzZQo+ICsJCXJldHVybiBOVUxMOwo+ICsKPiArCWFy Y2hfX2Fzc29jaWF0ZV9pbnNfb3BzKGFyY2gsIG5hbWUsIG9wcyk7Cj4gKwo+ICsJcmV0dXJuIG9w czsKPiArfQo+ICsKPiArc3RhdGljCj4gK2ludCByaXNjdjY0X19hbm5vdGF0ZV9pbml0KHN0cnVj dCBhcmNoICphcmNoLCBjaGFyICpjcHVpZCBfX21heWJlX3VudXNlZCkKPiArewo+ICsJaWYgKCFh cmNoLT5pbml0aWFsaXplZCkgewo+ICsJCWFyY2gtPmFzc29jaWF0ZV9pbnN0cnVjdGlvbl9vcHMg PSByaXNjdjY0X19hc3NvY2lhdGVfaW5zX29wczsKPiArCQlhcmNoLT5pbml0aWFsaXplZCA9IHRy dWU7Cj4gKwkJYXJjaC0+b2JqZHVtcC5jb21tZW50X2NoYXIgPSAnIyc7Cj4gKwl9Cj4gKwo+ICsJ cmV0dXJuIDA7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2Fubm90YXRlLmMg Yi90b29scy9wZXJmL3V0aWwvYW5ub3RhdGUuYwo+IGluZGV4IDBiYWUwNjFiMmQ2ZC4uZDkxOWZh OTkzODcyIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9hbm5vdGF0ZS5jCj4gKysrIGIv dG9vbHMvcGVyZi91dGlsL2Fubm90YXRlLmMKPiBAQCAtMTUxLDYgKzE1MSw3IEBAIHN0YXRpYyBp bnQgYXJjaF9fYXNzb2NpYXRlX2luc19vcHMoc3RydWN0IGFyY2gqIGFyY2gsIGNvbnN0IGNoYXIg Km5hbWUsIHN0cnVjdCBpCj4gICNpbmNsdWRlICJhcmNoL21pcHMvYW5ub3RhdGUvaW5zdHJ1Y3Rp b25zLmMiCj4gICNpbmNsdWRlICJhcmNoL3g4Ni9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYyIKPiAg I2luY2x1ZGUgImFyY2gvcG93ZXJwYy9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYyIKPiArI2luY2x1 ZGUgImFyY2gvcmlzY3Y2NC9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYyIKPiAgI2luY2x1ZGUgImFy Y2gvczM5MC9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYyIKPiAgI2luY2x1ZGUgImFyY2gvc3BhcmMv YW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMiCj4gIAo+IEBAIC0xOTIsNiArMTkzLDEwIEBAIHN0YXRp YyBzdHJ1Y3QgYXJjaCBhcmNoaXRlY3R1cmVzW10gPSB7Cj4gIAkJLm5hbWUgPSAicG93ZXJwYyIs Cj4gIAkJLmluaXQgPSBwb3dlcnBjX19hbm5vdGF0ZV9pbml0LAo+ICAJfSwKPiArCXsKPiArCQku bmFtZSA9ICJyaXNjdjY0IiwKPiArCQkuaW5pdCA9IHJpc2N2NjRfX2Fubm90YXRlX2luaXQsCj4g Kwl9LAo+ICAJewo+ICAJCS5uYW1lID0gInMzOTAiLAo+ICAJCS5pbml0ID0gczM5MF9fYW5ub3Rh dGVfaW5pdCwKPiAtLSAKPiAyLjI3LjAKCi0tIAoKLSBBcm5hbGRvCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QK bGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==