From nobody Tue Feb 10 01:14:54 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D4568322B63 for ; Mon, 22 Dec 2025 15:14:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766416493; cv=none; b=qecQmz4SI/vUlAos8w1dUQNsI28adsvpVDfAaD2sHd/gCq1m8jv/XJ5aufUxTjzRebN6xcSpGyF9cnNC49pqrL81gvidt1PoHUa7Rd96K9t1rG0IwTx47kypRrFh1dW2zSXRnT2nQg9xvuFSrM1WeiIJc1CrUtvlwMMGpyhU8z0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766416493; c=relaxed/simple; bh=Jc9rERJ1aa9uPXcRf+vQny2CNy2GLYq2wwN414Q1Kbg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CAjAhMK7pSReFiOrShcFkht/qvij4lfj+YvDKNcwe3MdcBdBPOu7fU0aqQICcbF92m+wSkNsHFyvrDsaq3W2Pnvya3bxM2M9sdr1l5oFV57bSghCIxD19lXNW5Wp0+Nqll/F78qoTLg80TKJmd4wKYxFkErfO6qGj/sITN2/o0g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=fcUs5sZU; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="fcUs5sZU" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-4775ae77516so36787105e9.1 for ; Mon, 22 Dec 2025 07:14:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766416490; x=1767021290; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=LcmTvJXahQwVxWMEArSL10u6PwPhpeVpWDjIQEb7L7Y=; b=fcUs5sZUPq2wgHGzHdaeRSq4yF1KE7V6tJgu3lUMSd9ieZ9OYbb8nJyRQcoEDo1RtN eV0ecvYuizeEm8L/Ygl/k9r1BKF+4UGgRTQKiqiX2E1clvkL3MN0yKoJxSMKdkPQogCW C46qCdoRqWGtRupm1mQDErTB2ffaZpzVbN41uwfoZlvTzxtHBBcoKvcS5F2FHZVxeDz3 VpEBjGRlqrhWu3ENbnrNTMv7pucCSi+Gq41GjeZ4y/11IKHtFFOQkv4nb7l2HfBeBdoV YVpo76+qN5/n9YtECjwwGu1WtEBCSnmCAgJLW6QmE+WTNsUFHUYgjzigpOtKQag5ARJW kwFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766416490; x=1767021290; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=LcmTvJXahQwVxWMEArSL10u6PwPhpeVpWDjIQEb7L7Y=; b=C/+eEYKhXjkqoj7c+MH/G98iVVOBxOZptSY853orXSObSaRe/MCsU+UzlvHzGauv82 voiMJxZScB2nw83O52O+FFD707H7sj0YSplsEDJR4wPIUyAzbaR2XhtIPepTTGphdKPL cT1qTeWMCc30+fLoE08p5A7354Dw7uLFVzTEzvRhm2QdbNJEO9fKcUwiA6E9U/0nzL0L a6kVqu/Go27zw/XoRj9KQDTm0/ibvIAOWJcUe0gIh3wC+yWePAJTeXU2Ub7PQ6Gj6TeB 3OqfESC/WQNnDPG4vdu2HJEtraGMYsR1LWt/VN4zNry6Dekp/Oq+6knLr2ZEz6bwZoMP 8jCg== X-Forwarded-Encrypted: i=1; AJvYcCVAMUqZpZzGsVuY1jFN5fOGo4cNF+2gRgFJ6+OofnAoquhINeRbeo2C9TCtPx3gVcYI8oX9KSCs6/is3LU=@vger.kernel.org X-Gm-Message-State: AOJu0YyczIJZLG8DiOLSb/6IsNZLGE/Wu94w0aaBXswyWfPjNguB6HKP Y/iUoVK91qkBybRC9trrOsebdVEDE9/dWfMl0jKLPUp81lgS3dWTuRe6HdUfIDX7kEA= X-Gm-Gg: AY/fxX4u3wg9H6erPK3cpeZ654CwgbXfU7Ya4NVQi1bIbxKGt3H+WYO/wGAOkDz8vk9 uCeSNHqkgHH7Gjzk/K61Nf+E5wPZA64OIN99XizMD7qKiQOQ+bMV5habMd7v2fAo3076/8t5WBs F4FsWR3q5GStNRK+vaZDZzurxP0zQjQkg7NyI5ZvqdPT2I4TQ/XZpwOdXtdUOLSv43tJl5Dwazp jNDUnjUOqfDVukI3hTPEv5Sjd0EMg0lAedjMY3nwnY1mubQ1FKFIk+8ALEFURrww8kgUsnQTIhe kdGvqWD4p0FQfisirJp8nea3o7fA+UieUPTB3FIjiF48P30WHHwlRG7xAl9FPtfZACjzsX6Kjh9 W9CHNNtMeHlCSY1vNDiZ/vNghdtN+TMpAWcLxaqk1ZN6xe2KPx53GuYO+UWkhgjOwYLl7YqMoii MQsmQAVv6qhFTiPAGNwzb7PW+HQtXgmqQ= X-Google-Smtp-Source: AGHT+IH4/L5Fd2bdzY3Fz+9C/VnJ0iwvm8BOZw7bzpSdKuWzvPUtGRSH0pZWBQVoeSUMScAftQbCdA== X-Received: by 2002:a05:6000:609:b0:430:f7bc:4cf1 with SMTP id ffacd0b85a97d-4324e4d50f7mr14023332f8f.26.1766416490049; Mon, 22 Dec 2025 07:14:50 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4324ea830fesm22750093f8f.20.2025.12.22.07.14.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Dec 2025 07:14:49 -0800 (PST) From: James Clark Date: Mon, 22 Dec 2025 15:14:28 +0000 Subject: [PATCH v4 03/14] perf evsel: Move evsel__* functions to evsel.c Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251222-james-perf-config-bits-v4-3-0608438186fc@linaro.org> References: <20251222-james-perf-config-bits-v4-0-0608438186fc@linaro.org> In-Reply-To: <20251222-james-perf-config-bits-v4-0-0608438186fc@linaro.org> To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Suzuki K Poulose , Mike Leach , John Garry , Will Deacon , Leo Yan Cc: linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, James Clark X-Mailer: b4 0.14.0 At least one of these were put here to avoid a Python binding linking issue which is no longer present. Put them back in their correct location to avoid confusion about which file to add a new evsel__* function to later. Link: https://lore.kernel.org/all/ZEbAS2yx2fguW60w@kernel.org/ Signed-off-by: James Clark --- tools/perf/util/evsel.c | 40 ++++++++++++++++++++++++++++++++++++++++ tools/perf/util/pmu.c | 40 ---------------------------------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index ec6552a6f667..21878e9bd029 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -1314,6 +1314,35 @@ struct evsel_config_term *__evsel__get_config_term(s= truct evsel *evsel, enum evs return found_term; } =20 +/* + * Set @config_name to @val as long as the user hasn't already set or clea= red it + * by passing a config term on the command line. + * + * @val is the value to put into the bits specified by @config_name rather= than + * the bit pattern. It is shifted into position by this function, so to set + * something to true, pass 1 for val rather than a pre shifted value. + */ +#define field_prep(_mask, _val) (((_val) << (ffsll(_mask) - 1)) & (_mask)) +void evsel__set_config_if_unset(struct evsel *evsel, const char *config_na= me, + u64 val) +{ + u64 user_bits =3D 0, bits; + struct evsel_config_term *term =3D evsel__get_config_term(evsel, CFG_CHG); + + if (term) + user_bits =3D term->val.cfg_chg; + + bits =3D perf_pmu__format_bits(evsel->pmu, config_name); + + /* Do nothing if the user changed the value */ + if (bits & user_bits) + return; + + /* Otherwise replace it */ + evsel->core.attr.config &=3D ~bits; + evsel->core.attr.config |=3D field_prep(bits, val); +} + void __weak arch_evsel__set_sample_weight(struct evsel *evsel) { evsel__set_sample_bit(evsel, WEIGHT); @@ -4098,6 +4127,17 @@ void evsel__set_leader(struct evsel *evsel, struct e= vsel *leader) evsel->core.leader =3D &leader->core; } =20 +bool evsel__is_aux_event(const struct evsel *evsel) +{ + struct perf_pmu *pmu; + + if (evsel->needs_auxtrace_mmap) + return true; + + pmu =3D evsel__find_pmu(evsel); + return pmu && pmu->auxtrace; +} + int evsel__source_count(const struct evsel *evsel) { struct evsel *pos; diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index e87c12946d71..e3a1f26213ec 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -1362,46 +1362,6 @@ void perf_pmu__warn_invalid_formats(struct perf_pmu = *pmu) } } =20 -bool evsel__is_aux_event(const struct evsel *evsel) -{ - struct perf_pmu *pmu; - - if (evsel->needs_auxtrace_mmap) - return true; - - pmu =3D evsel__find_pmu(evsel); - return pmu && pmu->auxtrace; -} - -/* - * Set @config_name to @val as long as the user hasn't already set or clea= red it - * by passing a config term on the command line. - * - * @val is the value to put into the bits specified by @config_name rather= than - * the bit pattern. It is shifted into position by this function, so to set - * something to true, pass 1 for val rather than a pre shifted value. - */ -#define field_prep(_mask, _val) (((_val) << (ffsll(_mask) - 1)) & (_mask)) -void evsel__set_config_if_unset(struct evsel *evsel, const char *config_na= me, - u64 val) -{ - u64 user_bits =3D 0, bits; - struct evsel_config_term *term =3D evsel__get_config_term(evsel, CFG_CHG); - - if (term) - user_bits =3D term->val.cfg_chg; - - bits =3D perf_pmu__format_bits(evsel->pmu, config_name); - - /* Do nothing if the user changed the value */ - if (bits & user_bits) - return; - - /* Otherwise replace it */ - evsel->core.attr.config &=3D ~bits; - evsel->core.attr.config |=3D field_prep(bits, val); -} - static struct perf_pmu_format * pmu_find_format(const struct list_head *formats, const char *name) { --=20 2.34.1