Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp5797734pxb; Thu, 20 Jan 2022 04:56:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJwKnbB2HbZgwwt9bFGttBM0wHhiWa5p3m3fc8VwQ58A8tfT/7vbpv6F9P1qYv41PGPkONLX X-Received: by 2002:a17:902:c94e:b0:149:ee00:8a8b with SMTP id i14-20020a170902c94e00b00149ee008a8bmr38372347pla.84.1642683395056; Thu, 20 Jan 2022 04:56:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642683395; cv=none; d=google.com; s=arc-20160816; b=vlHr2zjxdnPS8q74/QkhtV4r5jpYwb/Kn7hhy04jHea27xcQeiongH5Dla9Qrx4D1y YuaA1vk9j9bN1XDXEB/AXRZ+v+ybynno8jJsdKHAs3CqwGVasNa2Ze2/76Jw8hd6+Qzm 2QcEODV+bkddOaM3zLTxp0Z0UgN9iv6FrQuxhKEAvD0ic0aw2MRoogDezW1tWoXGRjPq OwfMCjx3u4HTRPo2UrXSPgOdX7CQRkR2tiygDG4Pyb1SrJvN3VS+qlhcfvBcZ1Ti/q1p zwEgIcxuOxLU7+jr2ZQ81vg7BVLgbaDYlPLM0i8Ev52IAblyDQvnEPyckVu+k3QxJtjJ I5tA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=hLUMfrkanSEvcYJNebH00+3AczmBMm3DHL4hzqI3QY4=; b=cQt3nqTgZ3jf0TmXnmHITn4fFGiNa69p10elvwjG1aZcDVC/jmLyXaiLytU2af0Vdx 1FbQded4gBdxi5jfu5IHAeRI8ikBYFUBjZikPzHAnViKu+lX/Y851EvTMV9oXhMfVoYi X2P0FAwCgNQx57V8rztuRxBTNVifyEULkAjdx1P+KI9FRy+o+mFCVMxclwH4vHK6urSP A8sAJhVE+WbTcCHle/HdCm50btWDObC0JLfoIDhiT+m1IdZxU1NAAsWDgQ7DEOQpPy1Y IMewTzBRef9Om3tcpJvT9LIG0Ooa6cqcq0iObTDMcGa8N/e7W70PrePjER8NW3zFKM3j pRxQ== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d15si3132225pjd.35.2022.01.20.04.56.23; Thu, 20 Jan 2022 04:56:35 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343532AbiAROoJ (ORCPT + 99 others); Tue, 18 Jan 2022 09:44:09 -0500 Received: from foss.arm.com ([217.140.110.172]:58502 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231658AbiAROoC (ORCPT ); Tue, 18 Jan 2022 09:44:02 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DB5B41FB; Tue, 18 Jan 2022 06:44:01 -0800 (PST) Received: from ip-10-252-15-108.eu-west-1.compute.internal (unknown [10.252.15.108]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 0F27E3F766; Tue, 18 Jan 2022 06:43:58 -0800 (PST) From: German Gomez To: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, acme@kernel.org Cc: German Gomez , Chase Conklin , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Ian Rogers , Arnaldo Carvalho de Melo , Stephane Eranian , netdev@vger.kernel.org, bpf@vger.kernel.org Subject: [PATCH v2] perf record/arm-spe: Override attr->sample_period for non-libpfm4 events Date: Tue, 18 Jan 2022 14:40:54 +0000 Message-Id: <20220118144054.2541-1-german.gomez@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A previous patch preventing "attr->sample_period" values from being overridden in pfm events changed a related behaviour in arm-spe. Before said patch: perf record -c 10000 -e arm_spe_0// -- sleep 1 Would yield an SPE event with period=10000. After the patch, the period in "-c 10000" was being ignored because the arm-spe code initializes sample_period to a non-zero value. This patch restores the previous behaviour for non-libpfm4 events. Reported-by: Chase Conklin Fixes: ae5dcc8abe31 (“perf record: Prevent override of attr->sample_period for libpfm4 events”) Signed-off-by: German Gomez --- As suggested by Arnaldo, this v2 doesn't include a test in order to not block this fix for longer than necessary. So the test can be sent as a separate submission later. Changes since v1. - Update commit message (James Clark) --- tools/perf/util/evsel.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index a59fb2ecb84e..86ab038f020f 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -1065,6 +1065,17 @@ void __weak arch_evsel__fixup_new_cycles(struct perf_event_attr *attr __maybe_un { } +static void evsel__set_default_freq_period(struct record_opts *opts, + struct perf_event_attr *attr) +{ + if (opts->freq) { + attr->freq = 1; + attr->sample_freq = opts->freq; + } else { + attr->sample_period = opts->default_interval; + } +} + /* * The enable_on_exec/disabled value strategy: * @@ -1131,14 +1142,12 @@ void evsel__config(struct evsel *evsel, struct record_opts *opts, * We default some events to have a default interval. But keep * it a weak assumption overridable by the user. */ - if (!attr->sample_period) { - if (opts->freq) { - attr->freq = 1; - attr->sample_freq = opts->freq; - } else { - attr->sample_period = opts->default_interval; - } - } + if ((evsel->is_libpfm_event && !attr->sample_period) || + (!evsel->is_libpfm_event && (!attr->sample_period || + opts->user_freq != UINT_MAX || + opts->user_interval != ULLONG_MAX))) + evsel__set_default_freq_period(opts, attr); + /* * If attr->freq was set (here or earlier), ask for period * to be sampled. -- 2.25.1