Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp135618iob; Tue, 17 May 2022 21:27:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTIEZ1HPPNAjCwqJOQUAjYIINQ51KqURMmSCPk7NocqnmoaBfAsZAWprfhHcOT+DWJgjlx X-Received: by 2002:a05:6a00:882:b0:510:a043:d4bc with SMTP id q2-20020a056a00088200b00510a043d4bcmr26124983pfj.64.1652848040431; Tue, 17 May 2022 21:27:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652848040; cv=none; d=google.com; s=arc-20160816; b=xaSFr2JOKBmYRFutV+0R/4+zY1NopDDbgVWRfdWUF5pRn89vj0BUfWLfrUvd1jZvzf ygOW42itsZIkd09E+KalO0dEDWRu8BCKIG1MmpmMjMpu+T+GqFHYVcxjd7Q61uDQoNiG cieGnq1xElHayKK1uWeLTTpw1CNoos5eQnowYHCgOtBfMkpeAxeze1QxPy86yQ8bHz2P XyC1DScS1gYKww4YB3qiYEdqlAkF651UrcXGgtOHb0trgxGD+NjzD6d0d4/MWup/tn2q 3O/tiLGp2eCWEl+0044ZEqnSVfdzNSdCzBDSV4HWUxDIyXG3HTZ56py9EhfSrzcI/g1Z DH4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=60d3oJvctUxP/oTDei+2vsfAh7UJD05S6Mlxv1MfLJs=; b=04FSMw2pZJWomzRvas+AYnk/FNiMKoRV7DsCcyRrBZgD/fYPtU49joVV3lOSRXuDHR 3F2Oqqi6N4Dv4Y/B8FadcJfo2lh7zmItTgXbGmfmPoluLMJCEeqpmS2zeYKYxqjF63Z4 s0NQ798dn9eCkB72DUIqkW5UXzjNSWHWARQX9GSulJ0UExS68tPpOtx6h+bDBGNP19SV abeOmST8gytiINfiPk9Ohiqx0KOK2RB0ZXpkIkmb2r6J9DKaYh6d7DTNIMnsCzbmE8zv pkHf2o7FCjGQ4yxcg9hnH681M3ZSfBxcBECCbEFbBMluJ5mT06cHee8T9OXaBtJ4xmoA Vqjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=sLa33qxu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id e15-20020a17090301cf00b0015b4a198c8fsi1529087plh.288.2022.05.17.21.27.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 May 2022 21:27:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=sLa33qxu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A61438CB35; Tue, 17 May 2022 20:50:30 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347479AbiEQNUD (ORCPT + 99 others); Tue, 17 May 2022 09:20:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51930 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347451AbiEQNUA (ORCPT ); Tue, 17 May 2022 09:20:00 -0400 Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 60F1F42EDA for ; Tue, 17 May 2022 06:19:59 -0700 (PDT) Received: by mail-pf1-x430.google.com with SMTP id x143so772570pfc.11 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=EAdDZHB76oWN0lSsgz7GU4iI4Vsgt13SETmU3lKPDHIaoBoXtyjMlV9l10EMpKzwq6 KEkihXpK61lu9TfEITVxB2zO+2R1jSegCgdz7LdeLMiYSiUozoRNoXY8/BxffSbflmB/ UkHQGiUyUo0OX9HjkW+4MEPFk8489+SMVhcFDuomaIPrbBKDtQf4M/SPvcpVH3lalo4w dik0JAZf6aGenkHXI5TkYQEbQ+2BHjxf0MrRg56HvpUKOOH/gkMNzQO1iVudccBOjqzU nnq+tY++4sb/VFKEUCQOUJIOwkHp57cEKNBxVUh5+Klt99s3fRwwrmQ+uz0uYh67K5u1 MOpw== X-Gm-Message-State: AOAM5329gh0r/zCHKvTRvrQcMfLmjvjO4AwmgRCYVJZxSZl9m3PeFSTF Xj7Ok7DMXQpwvvi7usFesvOuwA== 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-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220517102005.3022017-5-james.clark@arm.com> X-Spam-Status: No, score=2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_SBL_CSS,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: ** X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.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 >