Commit fd3f518f authored by Ian Rogers's avatar Ian Rogers Committed by Arnaldo Carvalho de Melo

perf thread_map: Reduce exposure of libperf internal API

Remove unnecessary include of internal threadmap.h and refcount.h in
thread_map.h. Switch to using public APIs when possible or including
the internal header file in the C file. Fix a transitive dependency in
openat-syscall.c broken by the clean up.
Signed-off-by: default avatarIan Rogers <irogers@google.com>
Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: Nicolas Schier <nicolas@fjasle.eu>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: bpf@vger.kernel.org
Link: http://lore.kernel.org/lkml/20221109184914.1357295-13-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent bd560973
...@@ -93,6 +93,7 @@ ...@@ -93,6 +93,7 @@
#include <linux/ctype.h> #include <linux/ctype.h>
#include <perf/evlist.h> #include <perf/evlist.h>
#include <internal/threadmap.h>
#define DEFAULT_SEPARATOR " " #define DEFAULT_SEPARATOR " "
#define FREEZE_ON_SMI_PATH "devices/cpu/freeze_on_smi" #define FREEZE_ON_SMI_PATH "devices/cpu/freeze_on_smi"
......
...@@ -4095,8 +4095,8 @@ static int trace__run(struct trace *trace, int argc, const char **argv) ...@@ -4095,8 +4095,8 @@ static int trace__run(struct trace *trace, int argc, const char **argv)
} }
trace->multiple_threads = perf_thread_map__pid(evlist->core.threads, 0) == -1 || trace->multiple_threads = perf_thread_map__pid(evlist->core.threads, 0) == -1 ||
evlist->core.threads->nr > 1 || perf_thread_map__nr(evlist->core.threads) > 1 ||
evlist__first(evlist)->core.attr.inherit; evlist__first(evlist)->core.attr.inherit;
/* /*
* Now that we already used evsel->core.attr to ask the kernel to setup the * Now that we already used evsel->core.attr to ask the kernel to setup the
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
#include <unistd.h>
#include "thread_map.h" #include "thread_map.h"
#include "evsel.h" #include "evsel.h"
#include "debug.h" #include "debug.h"
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "util/synthetic-events.h" #include "util/synthetic-events.h"
#include <linux/zalloc.h> #include <linux/zalloc.h>
#include <perf/event.h> #include <perf/event.h>
#include <internal/threadmap.h>
struct perf_sample; struct perf_sample;
struct perf_tool; struct perf_tool;
......
...@@ -561,7 +561,7 @@ static int bperf__load(struct evsel *evsel, struct target *target) ...@@ -561,7 +561,7 @@ static int bperf__load(struct evsel *evsel, struct target *target)
if (filter_type == BPERF_FILTER_PID || if (filter_type == BPERF_FILTER_PID ||
filter_type == BPERF_FILTER_TGID) filter_type == BPERF_FILTER_TGID)
key = evsel->core.threads->map[i].pid; key = perf_thread_map__pid(evsel->core.threads, i);
else if (filter_type == BPERF_FILTER_CPU) else if (filter_type == BPERF_FILTER_CPU)
key = evsel->core.cpus->map[i].cpu; key = evsel->core.cpus->map[i].cpu;
else else
......
...@@ -53,6 +53,7 @@ ...@@ -53,6 +53,7 @@
#include "util/parse-branch-options.h" #include "util/parse-branch-options.h"
#include <internal/xyarray.h> #include <internal/xyarray.h>
#include <internal/lib.h> #include <internal/lib.h>
#include <internal/threadmap.h>
#include <linux/ctype.h> #include <linux/ctype.h>
......
...@@ -718,17 +718,17 @@ static Py_ssize_t pyrf_thread_map__length(PyObject *obj) ...@@ -718,17 +718,17 @@ static Py_ssize_t pyrf_thread_map__length(PyObject *obj)
{ {
struct pyrf_thread_map *pthreads = (void *)obj; struct pyrf_thread_map *pthreads = (void *)obj;
return pthreads->threads->nr; return perf_thread_map__nr(pthreads->threads);
} }
static PyObject *pyrf_thread_map__item(PyObject *obj, Py_ssize_t i) static PyObject *pyrf_thread_map__item(PyObject *obj, Py_ssize_t i)
{ {
struct pyrf_thread_map *pthreads = (void *)obj; struct pyrf_thread_map *pthreads = (void *)obj;
if (i >= pthreads->threads->nr) if (i >= perf_thread_map__nr(pthreads->threads))
return NULL; return NULL;
return Py_BuildValue("i", pthreads->threads->map[i]); return Py_BuildValue("i", perf_thread_map__pid(pthreads->threads, i));
} }
static PySequenceMethods pyrf_thread_map__sequence_methods = { static PySequenceMethods pyrf_thread_map__sequence_methods = {
......
...@@ -1654,7 +1654,7 @@ static void python_process_stat(struct perf_stat_config *config, ...@@ -1654,7 +1654,7 @@ static void python_process_stat(struct perf_stat_config *config,
struct perf_cpu_map *cpus = counter->core.cpus; struct perf_cpu_map *cpus = counter->core.cpus;
int cpu, thread; int cpu, thread;
for (thread = 0; thread < threads->nr; thread++) { for (thread = 0; thread < perf_thread_map__nr(threads); thread++) {
for (cpu = 0; cpu < perf_cpu_map__nr(cpus); cpu++) { for (cpu = 0; cpu < perf_cpu_map__nr(cpus); cpu++) {
process_stat(counter, perf_cpu_map__cpu(cpus, cpu), process_stat(counter, perf_cpu_map__cpu(cpus, cpu),
perf_thread_map__pid(threads, thread), tstamp, perf_thread_map__pid(threads, thread), tstamp,
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "thread_map.h" #include "thread_map.h"
#include "debug.h" #include "debug.h"
#include "event.h" #include "event.h"
#include <internal/threadmap.h>
/* Skip "." and ".." directories */ /* Skip "." and ".." directories */
static int filter(const struct dirent *dir) static int filter(const struct dirent *dir)
......
...@@ -4,8 +4,6 @@ ...@@ -4,8 +4,6 @@
#include <sys/types.h> #include <sys/types.h>
#include <stdio.h> #include <stdio.h>
#include <linux/refcount.h>
#include <internal/threadmap.h>
#include <perf/threadmap.h> #include <perf/threadmap.h>
struct perf_record_thread_map; struct perf_record_thread_map;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment