Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp727589pxb; Fri, 14 Jan 2022 15:08:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJyrkr+2yTNWIiXg99zhuK9Sm5Bw7PiqXjlTKWDnCNJ5Q4ZPCU2tJpx5UvnPD/2n1hmO5eDH X-Received: by 2002:a63:b24b:: with SMTP id t11mr9749845pgo.444.1642201693178; Fri, 14 Jan 2022 15:08:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642201693; cv=none; d=google.com; s=arc-20160816; b=c8zQX4joHQEAQSmOL90KRlgjU754226PekQD6b02e1gBLPaNiRUWusuubgeL9prdXk Nm32Wk0mTddbjYoRzH9XhGLKZQeEzgx8CCaF4Znl3oOFNqblq+hHL3JT8ArDiy2dN9gw Eaz4KxTIivoGuN4rFB0OvwD72TwejsJR7NwREfqMfrEfZOeOLOqDa6CSCgBnRC/Tb2CV I5I2/2HourfG8NZKfZY6a3onUOXLsRn1o++1H46EhbrwA2D1Z/L8C2HTKaGd77rPXIXp bwB/BVupT3om4+7jUa7MjoZTDZrEqhFbAdyubBrzQ3vttKeGk8lqPaPsBwHjUzmP+AXk rhIw== 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=VE+5XxsEMnRgP03Me6092xaAtYRvPg6w39EwDcODAGs=; b=nAYl4DOxcnG3sA21GWC+Lm2Hej6gVTDKlWOzuE94VhlHNrX0J+cEYPi79lKI2/0C61 Urg151ezZEG0hsfjfisYForR4CAwg0O/OkLSsJrmVfV+pi3MHDxwag3s78b0BNs3QjWh pUPhX4uyFMOTdYJ/Fveen4hohV++zV2ZyDgwrYeqxwQmUzwZJA23uTcGokczDEns/TaV YeRy3Rm/M1mlGGvMvDvICi8tMAWa/mCAbAXQsHl1yQfSRRtTXcD7JEdi6MYmlwNVBiCp poL3ET4PO2P9AVP8x8o7G+UH2eWRpEPFnRnmiu8fa4ROgrX5mJAOGAqRMV1AOOj56JO8 Dzbg== 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 x11si7821677plg.150.2022.01.14.15.08.01; Fri, 14 Jan 2022 15:08:13 -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 S229767AbiANVVX (ORCPT + 99 others); Fri, 14 Jan 2022 16:21:23 -0500 Received: from foss.arm.com ([217.140.110.172]:38020 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229741AbiANVVW (ORCPT ); Fri, 14 Jan 2022 16:21:22 -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 8035C6D; Fri, 14 Jan 2022 13:21:21 -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 A20393F774; Fri, 14 Jan 2022 13:21:18 -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] perf record/arm-spe: Override attr->sample_period for non-libpfm4 events Date: Fri, 14 Jan 2022 21:21:02 +0000 Message-Id: <20220114212102.179209-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 commit preventing attr->sample_period values from being overridden in pfm events changed a related behaviour in arm_spe. Before this patch: perf record -c 10000 -e arm_spe_0// -- sleep 1 Would not yield an SPE event with period=10000, because the arm-spe code initializes sample_period to a non-0 value, so the "-c 10000" is ignored. 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 --- 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