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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 2EAC9C433EF for ; Tue, 17 May 2022 13:30:44 +0000 (UTC) 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=+ShFhHd56zfI1jBev6T/z6f9Z0Q3gThKU0+j8WqeQz8=; b=jOPurI5rLvXFrp xcMgBRX+bAINLSyvuV9LbNyHyKdCcZvbtslkbjBrgnoItPVw+ByGewMf35z89l6mxCQA93H0ykKZt p+RudtKtc2wGmo4c8nAf7iAJAoYN0pCLK4KC1ELbkLPaDnVHgmMwsZMwmmhd+TBl7BvaI9VHBJ/bP oyXJ3hc3X87bIgglWn4HAA6sZzq9OUCM1EkQoaqbwkWuJPmB7yZRkqCTuN9EGJPIGBxOwCWYJ5Let yDedF+yfi/T9TR7m4lRpQN37qaA7VrrXYR4JUuvX7m4pfSRgyIjDc2zoztof/l8WEJesq/0WUxF26 iWDkGnT5R/yUm5adPBVg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqxGO-00Dv60-Ag; Tue, 17 May 2022 13:29:25 +0000 Received: from mail-pg1-x52c.google.com ([2607:f8b0:4864:20::52c]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqx7J-00DrUY-C0 for linux-arm-kernel@lists.infradead.org; Tue, 17 May 2022 13:20:03 +0000 Received: by mail-pg1-x52c.google.com with SMTP id a19so16723235pgw.6 for ; Tue, 17 May 2022 06:19:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=60d3oJvctUxP/oTDei+2vsfAh7UJD05S6Mlxv1MfLJs=; b=sLa33qxuX7UQPweU8Gv5f68rW3IohaL9w81Io56m7BktAWuiQeYya2euk/CRddIg6X 3dUMKSAN5oRPQe2+cL2YOeJFF57TqPja5oIE3IiMQSEDjAga6E6avBr+UBhtiRxbw1YH JbtcVjFjaTjJ0JN4CFvqiXDRBBu4Krsv6FtL0SikHC1nFxQKABO9wiCn2suidjv/4AH7 FrbhUw9goNTqOserN4X52WYNhiU25LGiEC2RAe0OMcicYmMPvO13wwX89VoEfLXpVfQl C9gKhthX4plG4zN6Wg1otxB4fLsmZXvh3Ux12IumMnOIA8SJUw6uvyK/EMdz51rmxKFP TETA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=60d3oJvctUxP/oTDei+2vsfAh7UJD05S6Mlxv1MfLJs=; b=dKn0iKbD1wa1XR1fy3N/XPYoem8IK2gGFdHWYx/aK9y5X0NFZjYLVG+304jQDG5iT1 M2caC9trAdcZF6nKitiW7vozU/xEHGIE3pXi/nTnvanSffPv/E+0A3whjZp50mkl/Dc9 InKrpCJMrXHKusvkS8nxyza8Uhe3w6EV6rY7U9023FI3hElV1jRdD7CW5+aOkR1kRZsB FcSpgHcT4xHRB/GKPG/iyrFCPKbaCSqbFAFFN3gGpesCZpcLA2Ya8JgXpCn9BDabOk8N DQHrRCTPsLzbivN+hdkWgD9WODWbTJPKfh/tolVQGeICY2DxzbJjh5/1iSU8c9gud5K2 tFiA== X-Gm-Message-State: AOAM531MyfbQaPYeLkhTn5HbKnNRoyIs3vGYGoZ0ecFyhwS6PYJcL8kE gvW/h0HF+JRxPZEMSgrqMcX1iw== X-Google-Smtp-Source: ABdhPJwB9iU6V3h6T0XlcmvIfaDGUz0JvPDf0l9LKZih5qd1PFE8NwDzdbfnm0ljbPBHqRWK4ehk4w== X-Received: by 2002:a05:6a00:174a:b0:50d:44ca:4b with SMTP id j10-20020a056a00174a00b0050d44ca004bmr22671394pfc.0.1652793598742; Tue, 17 May 2022 06:19:58 -0700 (PDT) Received: from leoy-ThinkPad-X240s ([46.249.98.195]) by smtp.gmail.com with ESMTPSA id k3-20020a17090a910300b001df71667c3asm1569744pjo.54.2022.05.17.06.19.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 May 2022 06:19:58 -0700 (PDT) Date: Tue, 17 May 2022 21:19:52 +0800 From: Leo Yan To: James Clark Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, broonie@kernel.org, acme@kernel.org, german.gomez@arm.com, mathieu.poirier@linaro.org, john.garry@huawei.com, Will Deacon , Mike Leach , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v2 4/4] perf tools: arm64: Add support for VG register Message-ID: <20220517131952.GE153558@leoy-ThinkPad-X240s> References: <20220517102005.3022017-1-james.clark@arm.com> <20220517102005.3022017-5-james.clark@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220517102005.3022017-5-james.clark@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220517_062001_483888_0C8E253C X-CRM114-Status: GOOD ( 27.20 ) X-BeenThere: linux-arm-kernel@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="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, May 17, 2022 at 11:20:05AM +0100, James Clark wrote: > Add the name of the VG register so it can be used in --user-regs > > The event will fail to open if the register is requested but not > available so only add it to the mask if the kernel supports sve and also > if it supports that specific register. > > Signed-off-by: James Clark > --- > tools/perf/arch/arm64/util/perf_regs.c | 34 ++++++++++++++++++++++++++ > tools/perf/util/perf_regs.c | 2 ++ > 2 files changed, 36 insertions(+) > > diff --git a/tools/perf/arch/arm64/util/perf_regs.c b/tools/perf/arch/arm64/util/perf_regs.c > index 476b037eea1c..c0a921512a90 100644 > --- a/tools/perf/arch/arm64/util/perf_regs.c > +++ b/tools/perf/arch/arm64/util/perf_regs.c > @@ -2,9 +2,11 @@ > #include > #include > #include > +#include > #include > #include > > +#include "../../../perf-sys.h" > #include "../../../util/debug.h" > #include "../../../util/event.h" > #include "../../../util/perf_regs.h" > @@ -43,6 +45,7 @@ const struct sample_reg sample_reg_masks[] = { > SMPL_REG(lr, PERF_REG_ARM64_LR), > SMPL_REG(sp, PERF_REG_ARM64_SP), > SMPL_REG(pc, PERF_REG_ARM64_PC), > + SMPL_REG(vg, PERF_REG_ARM64_VG), > SMPL_REG_END > }; > > @@ -131,3 +134,34 @@ int arch_sdt_arg_parse_op(char *old_op, char **new_op) > > return SDT_ARG_VALID; > } > + > +uint64_t arch__user_reg_mask(void) > +{ > + struct perf_event_attr attr = { > + .type = PERF_TYPE_HARDWARE, > + .config = PERF_COUNT_HW_CPU_CYCLES, > + .sample_type = PERF_SAMPLE_REGS_USER, > + .disabled = 1, > + .exclude_kernel = 1, > + .sample_period = 1, > + .sample_regs_user = PERF_REGS_MASK > + }; > + int fd; > + > + if (getauxval(AT_HWCAP) & HWCAP_SVE) > + attr.sample_regs_user |= SMPL_REG_MASK(PERF_REG_ARM64_VG); > + > + /* > + * Check if the pmu supports perf extended regs, before > + * returning the register mask to sample. > + */ > + if (attr.sample_regs_user != PERF_REGS_MASK) { > + event_attr_init(&attr); > + fd = sys_perf_event_open(&attr, 0, -1, -1, 0); > + if (fd != -1) { > + close(fd); > + return attr.sample_regs_user; > + } > + } Just curious, since we can know SVE is supported from reading auxiliary value, can we directly return the register mask as below? PERF_REGS_MASK | SMPL_REG_MASK(PERF_REG_ARM64_VG); Except this question, this patch looks good to me. Thanks, Leo > + return PERF_REGS_MASK; > +} > diff --git a/tools/perf/util/perf_regs.c b/tools/perf/util/perf_regs.c > index a982e40ee5a9..872dd3d38782 100644 > --- a/tools/perf/util/perf_regs.c > +++ b/tools/perf/util/perf_regs.c > @@ -103,6 +103,8 @@ static const char *__perf_reg_name_arm64(int id) > return "lr"; > case PERF_REG_ARM64_PC: > return "pc"; > + case PERF_REG_ARM64_VG: > + return "vg"; > default: > return NULL; > } > -- > 2.28.0 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel