[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230311065753.3012826-6-irogers@google.com>
Date: Fri, 10 Mar 2023 22:57:45 -0800
From: Ian Rogers <irogers@...gle.com>
To: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Nathan Chancellor <nathan@...nel.org>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Tom Rix <trix@...hat.com>,
Roberto Sassu <roberto.sassu@...wei.com>,
Quentin Monnet <quentin@...valent.com>,
Andres Freund <andres@...razel.de>,
Tiezhu Yang <yangtiezhu@...ngson.cn>,
Pavithra Gurushankar <gpavithrasha@...il.com>,
Yang Jihong <yangjihong1@...wei.com>,
Adrian Hunter <adrian.hunter@...el.com>,
Leo Yan <leo.yan@...aro.org>,
"Martin Liška" <mliska@...e.cz>,
linux-kernel@...r.kernel.org, linux-perf-users@...r.kernel.org,
llvm@...ts.linux.dev
Cc: Stephane Eranian <eranian@...gle.com>,
Ian Rogers <irogers@...gle.com>
Subject: [PATCH v1 05/13] perf util: Remove weak sched_getcpu
sched_getcpu may not be present and so a feature test and definition
exist to workaround this in the build. The feature test is used to
define HAVE_SCHED_GETCPU_SUPPORT and so this is sufficient to know
whether the local sched_getcpu is needed and a weak symbol can be
avoided.
Signed-off-by: Ian Rogers <irogers@...gle.com>
---
tools/perf/util/cloexec.c | 13 -------------
tools/perf/util/util.c | 16 ++++++++++++++++
2 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/tools/perf/util/cloexec.c b/tools/perf/util/cloexec.c
index fa8248aadb59..8830604c3a8d 100644
--- a/tools/perf/util/cloexec.c
+++ b/tools/perf/util/cloexec.c
@@ -13,19 +13,6 @@
static unsigned long flag = PERF_FLAG_FD_CLOEXEC;
-int __weak sched_getcpu(void)
-{
-#ifdef __NR_getcpu
- unsigned cpu;
- int err = syscall(__NR_getcpu, &cpu, NULL, NULL);
- if (!err)
- return cpu;
-#else
- errno = ENOSYS;
-#endif
- return -1;
-}
-
static int perf_flag_probe(void)
{
/* use 'safest' configuration as used in evsel__fallback() */
diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c
index 391c1e928bd7..b356c9f7f0c3 100644
--- a/tools/perf/util/util.c
+++ b/tools/perf/util/util.c
@@ -533,3 +533,19 @@ int do_realloc_array_as_needed(void **arr, size_t *arr_sz, size_t x, size_t msz,
*arr_sz = new_sz;
return 0;
}
+
+#ifndef HAVE_SCHED_GETCPU_SUPPORT
+int sched_getcpu(void)
+{
+#ifdef __NR_getcpu
+ unsigned int cpu;
+ int err = syscall(__NR_getcpu, &cpu, NULL, NULL);
+
+ if (!err)
+ return cpu;
+#else
+ errno = ENOSYS;
+#endif
+ return -1;
+}
+#endif
--
2.40.0.rc1.284.g88254d51c5-goog
Powered by blists - more mailing lists