From nobody Tue Feb 10 20:06:12 2026 Received: from mail-dy1-f201.google.com (mail-dy1-f201.google.com [74.125.82.201]) (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 758C738A9B6 for ; Mon, 9 Feb 2026 17:41:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770658867; cv=none; b=NmdEyfLwIddluLa33+Ml1w+3Ec7Y2b2dy5Xrg94C1RQIJKG0Yh7R+BmEzl4qhqxItYeF781XkIkt86ot8U/zNqKXy6m64EH8+76wd3Rqxj9aIbivHPv5KaNitMADcRzcOJVaPU5VmeEDt5xYvH53ggCQjk+3HBm2GbW0VgHxDtU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770658867; c=relaxed/simple; bh=q5UlvBVECTomIEeTWGcaNQX2DgodeuUoFBvAGET5dH8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=dJbXQDlnSRzqwvvN9indtZnToiwEwDy2+TkaRR1YAwEBxehsmfHTC/lz2RvAT012nQ+NOWmbsnjSt5mzYTcKBhJFN32Rp+P0dCts7VZWhu94zcnlj8/5QQqQYNuLrUvIivBwa2Qi1UnJQ2WEzgLLsw9izlxZNsFslhVdHvH9urI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=R3fEueeN; arc=none smtp.client-ip=74.125.82.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="R3fEueeN" Received: by mail-dy1-f201.google.com with SMTP id 5a478bee46e88-2b9ea5408fbso1301388eec.1 for ; Mon, 09 Feb 2026 09:41:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1770658867; x=1771263667; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=WazEA22qs5eisbJNUkrlTqhv4A9vTFZzlfH6q6z/5ak=; b=R3fEueeNKCdMdxkZ+TFX8ORwnY0F17HXap35l5rViNh5fm6yvM+G8/q6pIU/txzXZv 7+zttwhF/DxNXeDZ+1X5n62bKGSoilzOKDP+mGeLXqJTLySbvFFj4Mq7UkqHQaQ+CSdC X5JaO+hpe+3oEAF45SQ69dzvWSGQvpd6/OKKaiVsfynysfWD2ZmRXng0jFerV72fC7dK 5IZfwOVuvYW+CN0W14R3qbHCrqKwcAKPhCSUi85oebkc+msy3g5ckIbTyqqNKkYe/iZT 2CYzqTwaISuYGLUrgqQVsejZgqpiEfFaPblXqip3wBzLwe1IFGwdMGj2RFO5l8tAiGo/ SaKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770658867; x=1771263667; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=WazEA22qs5eisbJNUkrlTqhv4A9vTFZzlfH6q6z/5ak=; b=Hy1nW1v+Md/2EAmifbUSETSvjDHCtSWu0hR0FLBsJIPx2TJ77EWS/cpNcRt/3bIy/v h/Vy1phUeJ07D2j8o9uUuULR81F/wJZMCL8/ZAvJJhLT4hzH9ceyjfPUnvQR/VYumJCz cRNpN7X8ThhvWCCBnDLy9un7cymvJPqFmfArolFuY9ipWfwsd5w1ZuQxxvq3I5D3FNlc lokJ8o9E4ZQBgcFg8SkS9Zhdlb43/1fNqKiZbGz80kiXcEEL+DJWXCFQnOcxV7bv8RMi +eCkqR2tFHnGV9nxSN3tU96545/lnDIT7JIl0jKlOiw6yLObIYReMFIkCHW1BEakTACO blkg== X-Forwarded-Encrypted: i=1; AJvYcCW+fzP/svp/U2oS4Hm6vBBBHXMQDByr1GcWyDptAgzvjSoTUSENV0xNf0Esm+3SwtyVx20nJVCYHu3mkNY=@vger.kernel.org X-Gm-Message-State: AOJu0YzB4GioGbD8XD9lUtxDnqBMywLC1Bx2UUO8GxoXyOkt5cVlMwmk OS1XYiuCP9PxPZU5Z7F7EItLHMzRH5kdYxcYTU8FancisKiOJZA+gAyQ9e1a4jFeABWj8DvVDhZ KXc5TnFJArA== X-Received: from dlaj4.prod.google.com ([2002:a05:701b:2804:b0:127:179c:22d2]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:6895:b0:2ba:6854:8d43 with SMTP id 5a478bee46e88-2ba6854b02amr1883967eec.23.1770658866488; Mon, 09 Feb 2026 09:41:06 -0800 (PST) Date: Mon, 9 Feb 2026 09:40:18 -0800 In-Reply-To: <20260209174032.4142096-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260209174032.4142096-1-irogers@google.com> X-Mailer: git-send-email 2.53.0.239.g8d8fc8a987-goog Message-ID: <20260209174032.4142096-12-irogers@google.com> Subject: [PATCH v1 11/25] perf hist: Remove evsel parameter from inc samples functions From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Leo Yan , Tianyou Li , Athira Rajeev , Derek Foreman , Thomas Falcon , Howard Chu , Dmitry Vyukov , Andi Kleen , tanze , Hrishikesh Suresh , Quan Zhou , Andrew Jones , Anup Patel , Dapeng Mi , "Dr. David Alan Gilbert" , "=?UTF-8?q?Krzysztof=20=C5=81opatowski?=" , Chun-Tse Shao , Ravi Bangoria , Swapnil Sapkal , Chen Ni , Blake Jones , Yujie Liu , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" hist_entry__inc_addr_samples and addr_map_symbol__inc_samples unnecessarily take an evsel argument. Read the evsel from the sample instead. Signed-off-by: Ian Rogers --- tools/perf/builtin-annotate.c | 7 +++---- tools/perf/builtin-c2c.c | 2 +- tools/perf/builtin-report.c | 18 ++++++++---------- tools/perf/builtin-top.c | 6 +++--- tools/perf/util/annotate.c | 19 +++++++++---------- tools/perf/util/annotate.h | 6 ++---- 6 files changed, 26 insertions(+), 32 deletions(-) diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index a4903e4ccdb5..40c0ae0b52a4 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c @@ -177,16 +177,15 @@ static int hist_iter__branch_callback(struct hist_ent= ry_iter *iter, struct hist_entry *he =3D iter->he; struct branch_info *bi; struct perf_sample *sample =3D iter->sample; - struct evsel *evsel =3D iter->evsel; int err; =20 bi =3D he->branch_info; - err =3D addr_map_symbol__inc_samples(&bi->from, sample, evsel); + err =3D addr_map_symbol__inc_samples(&bi->from, sample); =20 if (err) goto out; =20 - err =3D addr_map_symbol__inc_samples(&bi->to, sample, evsel); + err =3D addr_map_symbol__inc_samples(&bi->to, sample); =20 out: return err; @@ -276,7 +275,7 @@ static int evsel__add_sample(struct evsel *evsel, struc= t perf_sample *sample, if (he =3D=3D NULL) return -ENOMEM; =20 - ret =3D hist_entry__inc_addr_samples(he, sample, evsel, al->addr); + ret =3D hist_entry__inc_addr_samples(he, sample, al->addr); hists__inc_nr_samples(hists, true); return ret; } diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c index f9ac871264af..5684c14c2bf6 100644 --- a/tools/perf/builtin-c2c.c +++ b/tools/perf/builtin-c2c.c @@ -371,7 +371,7 @@ static int process_sample_event(const struct perf_tool = *tool __maybe_unused, =20 if (perf_c2c__has_annotation(NULL)) { perf_c2c__evsel_hists_inc_stats(evsel, he, sample); - addr_map_symbol__inc_samples(mem_info__iaddr(mi), sample, evsel); + addr_map_symbol__inc_samples(mem_info__iaddr(mi), sample); } =20 ret =3D hist_entry__append_callchain(he, sample); diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 35791fe0bd90..596b1ec9885c 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -170,7 +170,6 @@ static int hist_iter__report_callback(struct hist_entry= _iter *iter, int err =3D 0; struct report *rep =3D arg; struct hist_entry *he =3D iter->he; - struct evsel *evsel =3D iter->evsel; struct perf_sample *sample =3D iter->sample; struct mem_info *mi; struct branch_info *bi; @@ -180,25 +179,25 @@ static int hist_iter__report_callback(struct hist_ent= ry_iter *iter, =20 if (sort__mode =3D=3D SORT_MODE__BRANCH) { bi =3D he->branch_info; - err =3D addr_map_symbol__inc_samples(&bi->from, sample, evsel); + err =3D addr_map_symbol__inc_samples(&bi->from, sample); if (err) goto out; =20 - err =3D addr_map_symbol__inc_samples(&bi->to, sample, evsel); + err =3D addr_map_symbol__inc_samples(&bi->to, sample); =20 } else if (rep->mem_mode) { mi =3D he->mem_info; - err =3D addr_map_symbol__inc_samples(mem_info__daddr(mi), sample, evsel); + err =3D addr_map_symbol__inc_samples(mem_info__daddr(mi), sample); if (err) goto out; =20 - err =3D hist_entry__inc_addr_samples(he, sample, evsel, al->addr); + err =3D hist_entry__inc_addr_samples(he, sample, al->addr); =20 } else if (symbol_conf.cumulate_callchain) { if (single) - err =3D hist_entry__inc_addr_samples(he, sample, evsel, al->addr); + err =3D hist_entry__inc_addr_samples(he, sample, al->addr); } else { - err =3D hist_entry__inc_addr_samples(he, sample, evsel, al->addr); + err =3D hist_entry__inc_addr_samples(he, sample, al->addr); } =20 out: @@ -214,7 +213,6 @@ static int hist_iter__branch_callback(struct hist_entry= _iter *iter, struct report *rep =3D arg; struct branch_info *bi =3D he->branch_info; struct perf_sample *sample =3D iter->sample; - struct evsel *evsel =3D iter->evsel; int err; =20 branch_type_count(&rep->brtype_stat, &bi->flags, @@ -223,11 +221,11 @@ static int hist_iter__branch_callback(struct hist_ent= ry_iter *iter, if (!ui__has_annotation() && !rep->symbol_ipc) return 0; =20 - err =3D addr_map_symbol__inc_samples(&bi->from, sample, evsel); + err =3D addr_map_symbol__inc_samples(&bi->from, sample); if (err) goto out; =20 - err =3D addr_map_symbol__inc_samples(&bi->to, sample, evsel); + err =3D addr_map_symbol__inc_samples(&bi->to, sample); =20 out: return err; diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 710604c4f6f6..e863f9ef581f 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -198,7 +198,7 @@ static void ui__warn_map_erange(struct map *map, struct= symbol *sym, u64 ip) static void perf_top__record_precise_ip(struct perf_top *top, struct hist_entry *he, struct perf_sample *sample, - struct evsel *evsel, u64 ip) + u64 ip) EXCLUSIVE_LOCKS_REQUIRED(he->hists->lock) { struct annotation *notes; @@ -215,7 +215,7 @@ static void perf_top__record_precise_ip(struct perf_top= *top, if (!annotation__trylock(notes)) return; =20 - err =3D hist_entry__inc_addr_samples(he, sample, evsel, ip); + err =3D hist_entry__inc_addr_samples(he, sample, ip); =20 annotation__unlock(notes); =20 @@ -734,7 +734,7 @@ static int hist_iter__top_callback(struct hist_entry_it= er *iter, struct evsel *evsel =3D iter->evsel; =20 if (perf_hpp_list.sym && single) - perf_top__record_precise_ip(top, iter->he, iter->sample, evsel, al->addr= ); + perf_top__record_precise_ip(top, iter->he, iter->sample, al->addr); =20 hist__account_cycles(iter->sample->branch_stack, al, iter->sample, !(top->record_opts.branch_stack & PERF_SAMPLE_BRANCH_ANY), diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 2e3522905046..15ff0443c312 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -211,9 +211,10 @@ static int __symbol__account_cycles(struct cyc_hist *c= h, } =20 static int __symbol__inc_addr_samples(struct map_symbol *ms, - struct annotated_source *src, struct evsel *evsel, u64 addr, + struct annotated_source *src, u64 addr, struct perf_sample *sample) { + struct evsel *evsel =3D sample->evsel; struct symbol *sym =3D ms->sym; long hash_key; u64 offset; @@ -316,7 +317,7 @@ struct annotated_source *symbol__hists(struct symbol *s= ym, int nr_hists) } =20 static int symbol__inc_addr_samples(struct map_symbol *ms, - struct evsel *evsel, u64 addr, + u64 addr, struct perf_sample *sample) { struct symbol *sym =3D ms->sym; @@ -324,8 +325,8 @@ static int symbol__inc_addr_samples(struct map_symbol *= ms, =20 if (sym =3D=3D NULL) return 0; - src =3D symbol__hists(sym, evsel->evlist->core.nr_entries); - return src ? __symbol__inc_addr_samples(ms, src, evsel, addr, sample) : 0; + src =3D symbol__hists(sym, sample->evsel->evlist->core.nr_entries); + return src ? __symbol__inc_addr_samples(ms, src, addr, sample) : 0; } =20 static int symbol__account_br_cntr(struct annotated_branch *branch, @@ -579,16 +580,14 @@ static int annotation__compute_ipc(struct annotation = *notes, size_t size, return 0; } =20 -int addr_map_symbol__inc_samples(struct addr_map_symbol *ams, struct perf_= sample *sample, - struct evsel *evsel) +int addr_map_symbol__inc_samples(struct addr_map_symbol *ams, struct perf_= sample *sample) { - return symbol__inc_addr_samples(&ams->ms, evsel, ams->al_addr, sample); + return symbol__inc_addr_samples(&ams->ms, ams->al_addr, sample); } =20 -int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample= *sample, - struct evsel *evsel, u64 ip) +int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample= *sample, u64 ip) { - return symbol__inc_addr_samples(&he->ms, evsel, ip, sample); + return symbol__inc_addr_samples(&he->ms, ip, sample); } =20 =20 diff --git a/tools/perf/util/annotate.h b/tools/perf/util/annotate.h index 696e36dbf013..1aa6df7d1618 100644 --- a/tools/perf/util/annotate.h +++ b/tools/perf/util/annotate.h @@ -422,8 +422,7 @@ static inline struct annotation *symbol__annotation(str= uct symbol *sym) return (void *)sym - symbol_conf.priv_size; } =20 -int addr_map_symbol__inc_samples(struct addr_map_symbol *ams, struct perf_= sample *sample, - struct evsel *evsel); +int addr_map_symbol__inc_samples(struct addr_map_symbol *ams, struct perf_= sample *sample); =20 struct annotated_branch *annotation__get_branch(struct annotation *notes); =20 @@ -433,8 +432,7 @@ int addr_map_symbol__account_cycles(struct addr_map_sym= bol *ams, struct evsel *evsel, u64 br_cntr); =20 -int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample= *sample, - struct evsel *evsel, u64 addr); +int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample= *sample, u64 addr); =20 struct annotated_source *symbol__hists(struct symbol *sym, int nr_hists); void symbol__annotate_zero_histograms(struct symbol *sym); --=20 2.53.0.239.g8d8fc8a987-goog