mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ian Rogers <irogers@google.com>
To: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Ian Rogers <irogers@google.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Nick Terrell <terrelln@fb.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	Andi Kleen <ak@linux.intel.com>, Kajol Jain <kjain@linux.ibm.com>,
	Athira Rajeev <atrajeev@linux.vnet.ibm.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Vincent Whitchurch <vincent.whitchurch@axis.com>,
	"Steinar H. Gunderson" <sesse@google.com>,
	Liam Howlett <liam.howlett@oracle.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Colin Ian King <colin.i.king@gmail.com>,
	Dmitrii Dolgov <9erthalion6@gmail.com>,
	Yang Jihong <yangjihong1@huawei.com>,
	Ming Wang <wangming01@loongson.cn>,
	James Clark <james.clark@arm.com>,
	K Prateek Nayak <kprateek.nayak@amd.com>,
	Sean Christopherson <seanjc@google.com>,
	Leo Yan <leo.yan@linaro.org>,
	Ravi Bangoria <ravi.bangoria@amd.com>,
	German Gomez <german.gomez@arm.com>,
	Changbin Du <changbin.du@huawei.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Li Dong <lidong@vivo.com>,
	Sandipan Das <sandipan.das@amd.com>,
	liuwenyu <liuwenyu7@huawei.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Guilherme Amadio <amadio@gentoo.org>
Subject: [PATCH v5 45/50] perf dsos: Remove __dsos__findnew_link_by_longname_id
Date: Mon, 27 Nov 2023 14:08:57 -0800	[thread overview]
Message-ID: <20231127220902.1315692-46-irogers@google.com> (raw)
In-Reply-To: <20231127220902.1315692-1-irogers@google.com>

Function was only called in dsos.c with the dso parameter as
NULL. Remove the function and specialize for the dso being NULL case
removing other unused functions along the way.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/util/dsos.c | 51 +++++++++---------------------------------
 tools/perf/util/dsos.h |  6 -----
 2 files changed, 10 insertions(+), 47 deletions(-)

diff --git a/tools/perf/util/dsos.c b/tools/perf/util/dsos.c
index 1495ab1cd7a0..e4110438841b 100644
--- a/tools/perf/util/dsos.c
+++ b/tools/perf/util/dsos.c
@@ -119,11 +119,6 @@ static int __dso__cmp_short_name(const char *short_name, struct dso_id *id, stru
 	return rc ?: dso_id__cmp(id, &b->id);
 }
 
-static int dso__cmp_short_name(struct dso *a, struct dso *b)
-{
-	return __dso__cmp_short_name(a->short_name, &a->id, b);
-}
-
 static int dsos__cmp_long_name_id_short_name(const void *va, const void *vb)
 {
 	const struct dso *a = *((const struct dso **)va);
@@ -143,20 +138,21 @@ static int dsos__cmp_long_name_id_short_name(const void *va, const void *vb)
  * Either one of the dso or name parameter must be non-NULL or the
  * function will not work.
  */
-struct dso *__dsos__findnew_link_by_longname_id(struct dsos *dsos,
-						struct dso *dso,
-						const char *name,
-						struct dso_id *id,
-						bool write_locked)
+static struct dso *__dsos__find_by_longname_id(struct dsos *dsos,
+					       const char *name,
+					       struct dso_id *id,
+					       bool write_locked)
 {
 	int low = 0, high = dsos->cnt - 1;
 
 	if (!dsos->sorted) {
 		if (!write_locked) {
+			struct dso *dso;
+
 			up_read(&dsos->lock);
 			down_write(&dsos->lock);
-			dso = __dsos__findnew_link_by_longname_id(dsos, dso, name, id,
-								  /*write_locked=*/true);
+			dso = __dsos__find_by_longname_id(dsos, name, id,
+							  /*write_locked=*/true);
 			up_write(&dsos->lock);
 			down_read(&dsos->lock);
 			return dso;
@@ -166,9 +162,6 @@ struct dso *__dsos__findnew_link_by_longname_id(struct dsos *dsos,
 		dsos->sorted = true;
 	}
 
-	if (!name)
-		name = dso->long_name;
-
 	/*
 	 * Find node with the matching name
 	 */
@@ -178,31 +171,13 @@ struct dso *__dsos__findnew_link_by_longname_id(struct dsos *dsos,
 		int rc = __dso__cmp_long_name(name, id, this);
 
 		if (rc == 0) {
-			/*
-			 * In case the new DSO is a duplicate of an existing
-			 * one, print a one-time warning & put the new entry
-			 * at the end of the list of duplicates.
-			 */
-			if (!dso || (dso == this))
-				return dso__get(this);	/* Find matching dso */
-			/*
-			 * The core kernel DSOs may have duplicated long name.
-			 * In this case, the short name should be different.
-			 * Comparing the short names to differentiate the DSOs.
-			 */
-			rc = dso__cmp_short_name(dso, this);
-			if (rc == 0) {
-				pr_err("Duplicated dso name: %s\n", name);
-				return NULL;
-			}
+			return dso__get(this);	/* Find matching dso */
 		}
 		if (rc < 0)
 			high = mid - 1;
 		else
 			low = mid + 1;
 	}
-	if (dso)
-		__dsos__add(dsos, dso);
 	return NULL;
 }
 
@@ -240,12 +215,6 @@ int dsos__add(struct dsos *dsos, struct dso *dso)
 	return ret;
 }
 
-static struct dso *__dsos__findnew_by_longname_id(struct dsos *dsos, const char *name,
-						struct dso_id *id, bool write_locked)
-{
-	return __dsos__findnew_link_by_longname_id(dsos, NULL, name, id, write_locked);
-}
-
 struct dsos__find_id_cb_args {
 	const char *name;
 	struct dso_id *id;
@@ -279,7 +248,7 @@ static struct dso *__dsos__find_id(struct dsos *dsos, const char *name, struct d
 		__dsos__for_each_dso(dsos, dsos__find_id_cb, &args);
 		return args.res;
 	}
-	res = __dsos__findnew_by_longname_id(dsos, name, id, write_locked);
+	res = __dsos__find_by_longname_id(dsos, name, id, write_locked);
 	return res;
 }
 
diff --git a/tools/perf/util/dsos.h b/tools/perf/util/dsos.h
index d1497b11d64c..6c13b65648bc 100644
--- a/tools/perf/util/dsos.h
+++ b/tools/perf/util/dsos.h
@@ -36,12 +36,6 @@ struct dso *dsos__findnew_id(struct dsos *dsos, const char *name, struct dso_id
  
 bool dsos__read_build_ids(struct dsos *dsos, bool with_hits);
 
-struct dso *__dsos__findnew_link_by_longname_id(struct dsos *dsos,
-						struct dso *dso,
-						const char *name,
-						struct dso_id *id,
-						bool write_locked);
-
 size_t dsos__fprintf_buildid(struct dsos *dsos, FILE *fp,
 			       bool (skip)(struct dso *dso, int parm), int parm);
 size_t dsos__fprintf(struct dsos *dsos, FILE *fp);
-- 
2.43.0.rc1.413.gea7ed67945-goog


  parent reply	other threads:[~2023-11-27 22:15 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-27 22:08 [PATCH v5 00/50] Improvements to memory use Ian Rogers
2023-11-27 22:08 ` [PATCH v5 01/50] perf comm: Use regular mutex Ian Rogers
2023-11-30  0:55   ` Namhyung Kim
2023-11-30 18:27     ` Ian Rogers
2023-12-02 23:54       ` Namhyung Kim
2023-12-07  0:05         ` Ian Rogers
2024-02-06  3:04           ` Ian Rogers
2023-11-27 22:08 ` [PATCH v5 02/50] libperf: Lazily allocate/size mmap event copy Ian Rogers
2023-11-30  1:25   ` Namhyung Kim
2023-11-30 13:15   ` Arnaldo Carvalho de Melo
2023-11-30 14:19     ` Arnaldo Carvalho de Melo
2023-11-30 17:17       ` Arnaldo Carvalho de Melo
2023-11-27 22:08 ` [PATCH v5 03/50] perf mmap: Lazily initialize zstd streams Ian Rogers
2023-11-30  1:28   ` Namhyung Kim
2023-11-27 22:08 ` [PATCH v5 04/50] tools api fs: Switch filename__read_str to use io.h Ian Rogers
2023-11-30  1:36   ` Namhyung Kim
2023-11-27 22:08 ` [PATCH v5 05/50] tools api fs: Avoid reading whole file for a 1 byte bool Ian Rogers
2023-11-30  1:42   ` Namhyung Kim
2023-11-27 22:08 ` [PATCH v5 06/50] tools lib api: Add io_dir an allocation free readdir alternative Ian Rogers
2023-11-30  1:49   ` Namhyung Kim
2023-11-30 17:21   ` Arnaldo Carvalho de Melo
2023-11-30 17:56     ` Ian Rogers
2023-11-30 21:25       ` Arnaldo Carvalho de Melo
2023-12-07  5:13         ` Ian Rogers
2023-11-27 22:08 ` [PATCH v5 07/50] perf maps: Switch modules tree walk to io_dir__readdir Ian Rogers
2023-11-30  1:59   ` Namhyung Kim
2023-11-27 22:08 ` [PATCH v5 08/50] perf record: Be lazier in allocating lost samples buffer Ian Rogers
2023-11-30  2:09   ` Namhyung Kim
2023-11-30 18:29     ` Ian Rogers
2023-12-02 23:56       ` Namhyung Kim
2023-12-05 15:54         ` Arnaldo Carvalho de Melo
2023-11-27 22:08 ` [PATCH v5 09/50] perf pmu: Switch to io_dir__readdir Ian Rogers
2023-11-30  2:16   ` Namhyung Kim
2023-11-27 22:08 ` [PATCH v5 10/50] perf header: Switch mem topology " Ian Rogers
2023-11-30  4:17   ` Namhyung Kim
2023-11-27 22:08 ` [PATCH v5 11/50] perf events: Remove scandir in thread synthesis Ian Rogers
2023-11-30  4:22   ` Namhyung Kim
2023-11-27 22:08 ` [PATCH v5 12/50] perf map: Simplify map_ip/unmap_ip and make map size smaller Ian Rogers
2023-12-04 23:39   ` Namhyung Kim
2023-12-06 13:49     ` Arnaldo Carvalho de Melo
2023-12-06 16:19       ` Ian Rogers
2023-11-27 22:08 ` [PATCH v5 13/50] perf maps: Move symbol maps functions to maps.c Ian Rogers
2023-12-04 23:40   ` Namhyung Kim
2023-12-06 13:50     ` Arnaldo Carvalho de Melo
2023-11-27 22:08 ` [PATCH v5 14/50] perf thread: Add missing RC_CHK_EQUAL Ian Rogers
2023-12-04 23:41   ` Namhyung Kim
2023-12-06 13:51     ` Arnaldo Carvalho de Melo
2023-11-27 22:08 ` [PATCH v5 15/50] perf maps: Add maps__for_each_map to call a function on each entry Ian Rogers
2023-12-04 23:46   ` Namhyung Kim
2023-12-06 13:53     ` Arnaldo Carvalho de Melo
2023-11-27 22:08 ` [PATCH v5 16/50] perf maps: Add remove maps function to remove a map based on callback Ian Rogers
2023-12-04 23:49   ` Namhyung Kim
2023-12-06 23:28     ` Ian Rogers
2023-11-27 22:08 ` [PATCH v5 17/50] perf debug: Expose debug file Ian Rogers
2023-12-04 23:53   ` Namhyung Kim
2023-11-27 22:08 ` [PATCH v5 18/50] perf maps: Refactor maps__fixup_overlappings Ian Rogers
2023-12-04 23:59   ` Namhyung Kim
2023-12-06 23:39     ` Ian Rogers
2023-11-27 22:08 ` [PATCH v5 19/50] perf maps: Do simple merge if given map doesn't overlap Ian Rogers
2023-12-05  0:06   ` Namhyung Kim
2023-12-06 23:51     ` Ian Rogers
2023-11-27 22:08 ` [PATCH v5 20/50] perf maps: Rename clone to copy from Ian Rogers
2023-12-05  0:07   ` Namhyung Kim
2023-11-27 22:08 ` [PATCH v5 21/50] perf maps: Add maps__load_first Ian Rogers
2023-11-27 22:08 ` [PATCH v5 22/50] perf maps: Add find next entry to give entry after the given map Ian Rogers
2023-11-27 22:08 ` [PATCH v5 23/50] perf maps: Reduce scope of map_rb_node and maps internals Ian Rogers
2023-11-27 22:08 ` [PATCH v5 24/50] perf maps: Fix up overlaps during fixup_end Ian Rogers
2023-11-27 22:08 ` [PATCH v5 25/50] perf maps: Switch from rbtree to lazily sorted array for addresses Ian Rogers
2023-11-27 22:08 ` [PATCH v5 26/50] perf maps: Get map before returning in maps__find Ian Rogers
2023-11-27 22:08 ` [PATCH v5 27/50] perf maps: Get map before returning in maps__find_by_name Ian Rogers
2023-11-27 22:08 ` [PATCH v5 28/50] perf maps: Get map before returning in maps__find_next_entry Ian Rogers
2023-11-27 22:08 ` [PATCH v5 29/50] perf maps: Hide maps internals Ian Rogers
2023-11-27 22:08 ` [PATCH v5 30/50] perf maps: Locking tidy up of nr_maps Ian Rogers
2023-11-27 22:08 ` [PATCH v5 31/50] perf dso: Reorder variables to save space in struct dso Ian Rogers
2023-11-27 22:08 ` [PATCH v5 32/50] perf report: Sort child tasks by tid Ian Rogers
2023-11-27 22:08 ` [PATCH v5 33/50] perf trace: Ignore thread hashing in summary Ian Rogers
2023-11-27 22:08 ` [PATCH v5 34/50] perf machine: Move fprintf to for_each loop and a callback Ian Rogers
2023-11-27 22:08 ` [PATCH v5 35/50] perf threads: Move threads to its own files Ian Rogers
2023-11-27 22:08 ` [PATCH v5 36/50] perf threads: Switch from rbtree to hashmap Ian Rogers
2023-11-27 22:08 ` [PATCH v5 37/50] perf threads: Reduce table size from 256 to 8 Ian Rogers
2023-11-27 22:08 ` [PATCH v5 38/50] perf dsos: Attempt to better abstract dsos internals Ian Rogers
2023-11-27 22:08 ` [PATCH v5 39/50] perf dsos: Tidy reference counting and locking Ian Rogers
2023-11-27 22:08 ` [PATCH v5 40/50] perf dsos: Add dsos__for_each_dso Ian Rogers
2023-11-27 22:08 ` [PATCH v5 41/50] perf dso: Move dso functions out of dsos Ian Rogers
2023-11-27 22:08 ` [PATCH v5 42/50] perf dsos: Switch more loops to dsos__for_each_dso Ian Rogers
2023-11-27 22:08 ` [PATCH v5 43/50] perf dsos: Switch backing storage to array from rbtree/list Ian Rogers
2023-11-27 22:08 ` [PATCH v5 44/50] perf dsos: Remove __dsos__addnew Ian Rogers
2023-11-27 22:08 ` Ian Rogers [this message]
2023-11-27 22:08 ` [PATCH v5 46/50] perf dsos: Switch hand code to bsearch Ian Rogers
2023-11-27 22:08 ` [PATCH v5 47/50] perf dso: Add reference count checking and accessor functions Ian Rogers
2023-11-27 22:09 ` [PATCH v5 48/50] perf dso: Reference counting related fixes Ian Rogers
2023-11-27 22:09 ` [PATCH v5 49/50] perf dso: Use container_of to avoid a pointer in dso_data Ian Rogers
2023-11-27 22:09 ` [PATCH v5 50/50] perf env: Avoid recursively taking env->bpf_progs.lock Ian Rogers
2023-11-30  1:16 ` [PATCH v5 00/50] Improvements to memory use Namhyung Kim
2023-12-07  0:10   ` Ian Rogers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231127220902.1315692-46-irogers@google.com \
    --to=irogers@google.com \
    --cc=9erthalion6@gmail.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=amadio@gentoo.org \
    --cc=atrajeev@linux.vnet.ibm.com \
    --cc=changbin.du@huawei.com \
    --cc=chenhuacai@kernel.org \
    --cc=colin.i.king@gmail.com \
    --cc=german.gomez@arm.com \
    --cc=james.clark@arm.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.com \
    --cc=kjain@linux.ibm.com \
    --cc=kprateek.nayak@amd.com \
    --cc=leo.yan@linaro.org \
    --cc=liam.howlett@oracle.com \
    --cc=lidong@vivo.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=liuwenyu7@huawei.com \
    --cc=mark.rutland@arm.com \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=ojeda@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@amd.com \
    --cc=sandipan.das@amd.com \
    --cc=seanjc@google.com \
    --cc=sesse@google.com \
    --cc=terrelln@fb.com \
    --cc=vincent.whitchurch@axis.com \
    --cc=wangming01@loongson.cn \
    --cc=yangjihong1@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®