From nobody Mon Feb 9 19:53:01 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (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 358A23A1A2D for ; Wed, 14 Jan 2026 15:57:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768406268; cv=none; b=qPRjcJ040v5bMwuUliYs30QBSsX4mB7OfWHq0m1ScHYrrE8K94sMgWGhiJCuk+RYsZ0Wwewq88lI75igTLsRIXlKQPLhBAW2eirJleFqhvM1bz3ngJStmiuSGd4wZ5cioTo8evXqbPofS1fm3axZw19TA8KZO54BghLP/Q4fySg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768406268; c=relaxed/simple; bh=Jc9rERJ1aa9uPXcRf+vQny2CNy2GLYq2wwN414Q1Kbg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j4BZqyDT9iLli32INtWqWhP1cHx9mI9kZ7E/4RySgvyx4VwMAzCfqIGWmMoHgJ+wgS6HGsdBI6JLE6K6QrxeiaHJNxRbzCFkCYmVLMEpjTMmmrLB4SKy/Fn3DQ/OTFLI/h75IU4jvEH7quJM60JIfB9bX0GUVCNNVop/w2SCqFQ= 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=eMC5/24I; arc=none smtp.client-ip=209.85.128.43 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="eMC5/24I" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-47edd6111b4so16196025e9.1 for ; Wed, 14 Jan 2026 07:57:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768406260; x=1769011060; 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=eMC5/24IPLgkx2naGfSnFmSutQm++zPrhXK8FQixGb3jfWiRvQ3aX4SAbaLJsQq61h EjKovDZ6J7RV7z1YtK9XxcS1N7z8uXUH9p5j27WFkHNzLgheYFBaeZOVCruMTYDfPqFQ idiUzlxq6nuDiYts8Sw0u9pOP0eQMdZpAdSU5KxXZy2bs5Lmlw2vJcbvSdoymxQj4G7s QSg051wbrDtLmI/OZd6jwSbZvSmjFuOjYUW5b9nYNGBeo36d3KlYt2k6QlX9Cg/0gGys 0v65/V+fDd1Mr3T8COAoMFpkg/OLoV1agoEgg8rQ3MJ48e1ErruIXf2dgKRcztsjTdVF cJiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768406260; x=1769011060; 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=OZf8dsmHtZTmPwUvCOhXxLRCnLM1M0rE5R0Piy1hBZZi1ujxZGFKLBujy0XS5Px2KQ ni2I8bXOm5c60VzIxZYP2OoDGGqqub5/vLetbXDGwrJ0TZOzuiCFgELwfKg34tQdhu1O PZzzOSWF02lzcmfa1trmlce1V6Z0/GC/IjQJC/1bm9AsiSLDsznzpK9I5p7LgxL9hd6V 50kQihkSCAlHFzzx4lK7d0J+ngznWq8DNC1GdNtIwKo41jChkiXgJ2Dy9eZ9ec6qQJDA xHpQXqQ/8RB+PpazkUBh26ESw1bKnZEwDKr7av9K7v+OcG7FDpEbS2Taw+q26MmklHKX z8Ng== X-Forwarded-Encrypted: i=1; AJvYcCWsptI51xusvm26y2q7mJLUO2Y8M+KKlpFDp8Dhhaqag1kOHg7+kOgQS3bd7NXZhp+0YO4Tq5RtEO89KdU=@vger.kernel.org X-Gm-Message-State: AOJu0YyT+cDNBPJqjm5xADQAb9pX1bBLzvcZQ0FSPZfqvycEtcuBZ1mV taYHVKkx+c/Pc2Hx4DFIyAp1q1cbJQrt3xBdxOhZYCKD8F60jNAxvUEZcmLKBSJnIWQ= X-Gm-Gg: AY/fxX7wpuqKeddkG0Lq/VqOW3sPQwdOhgCtlJL2+54+Ah9S3hlkExjHUffHYrHqF86 Oj28MkZlpc+G8YnM8HyXRhmq3QI4eQmdVFHV5QP4pjrNwZMbUvgQsHiqrdEc5ObW2g7IX8eqOEI iU9vwPlB6zoJizoiS5QzuWZmshrKYRH3rx/WSc8JPxrps9ulQiaNHF1rW+6JuILxFZNkde5TrAC XdwuhehpAdHPvz8M3798JT4Yt1A0u35cH/GNLtXlz/zrFUpHHL0QGUvED4CnA7WaqPWZr2x7SAT olCegFqxfkkT0WJ3vPQZZAzILnTTEPgTJ8kG5C4AfObu/JFc8annmcxAnuEK3i7bGNdzWaKIAWP J+1djR0RZlt2O0D98fPCmKcb5sfVwBcwDdeauP+hYr9iyrF7H5/dDSOw5hfCX4ccVa8OU93T0BI PR5JUE+fzpa13v6IaH1QPi X-Received: by 2002:a05:600c:81c5:b0:477:755b:5587 with SMTP id 5b1f17b1804b1-47ee47bbe97mr31174885e9.8.1768406260536; Wed, 14 Jan 2026 07:57:40 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47ee85e8807sm7426475e9.16.2026.01.14.07.57.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Jan 2026 07:57:40 -0800 (PST) From: James Clark Date: Wed, 14 Jan 2026 15:57:15 +0000 Subject: [PATCH v5 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: <20260114-james-perf-config-bits-v5-3-0ef97aaf1ac0@linaro.org> References: <20260114-james-perf-config-bits-v5-0-0ef97aaf1ac0@linaro.org> In-Reply-To: <20260114-james-perf-config-bits-v5-0-0ef97aaf1ac0@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 Reviewed-by: Ian Rogers --- 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