File libperf-add-perf_evlist__remove-function.patch of Package perf
xxxxxxxxxx
1
From: Jiri Olsa <jolsa@kernel.org>
2
Date: Sun, 21 Jul 2019 13:24:27 +0200
3
Subject: libperf: Add perf_evlist__remove() function
4
Git-commit: 52e22fb8af779e1a26b1cbde1db2f82f78b3ae68
5
Patch-mainline: v5.4-rc1
6
References: jsc#SLE-13661
7
8
Adding perf_evlist__remove() function to remove a perf_evsel from
9
a perf_evlist struct.
10
11
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
12
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
13
Cc: Alexey Budankov <alexey.budankov@linux.intel.com>
14
Cc: Andi Kleen <ak@linux.intel.com>
15
Cc: Michael Petlan <mpetlan@redhat.com>
16
Cc: Namhyung Kim <namhyung@kernel.org>
17
Cc: Peter Zijlstra <peterz@infradead.org>
18
Link: http://lkml.kernel.org/r/20190721112506.12306-41-jolsa@kernel.org
19
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
20
Signed-off-by: Tony Jones <tonyj@suse.de>
21
---
22
tools/perf/lib/evlist.c | 6 ++++++
23
tools/perf/lib/include/perf/evlist.h | 2 ++
24
tools/perf/lib/libperf.map | 1 +
25
tools/perf/util/evlist.c | 2 +-
26
4 files changed, 10 insertions(+), 1 deletion(-)
27
28
diff --git a/tools/perf/lib/evlist.c b/tools/perf/lib/evlist.c
29
index e5f187fa4e57..023fe4b44131 100644
30
--- a/tools/perf/lib/evlist.c
31
+++ b/tools/perf/lib/evlist.c
32
33
{
34
list_add_tail(&evsel->node, &evlist->entries);
35
}
36
+
37
+void perf_evlist__remove(struct perf_evlist *evlist,
38
+ struct perf_evsel *evsel)
39
+{
40
+ list_del_init(&evsel->node);
41
+}
42
diff --git a/tools/perf/lib/include/perf/evlist.h b/tools/perf/lib/include/perf/evlist.h
43
index 6992568b14a0..e0c87995c6ff 100644
44
--- a/tools/perf/lib/include/perf/evlist.h
45
+++ b/tools/perf/lib/include/perf/evlist.h
46
47
LIBPERF_API void perf_evlist__init(struct perf_evlist *evlist);
48
LIBPERF_API void perf_evlist__add(struct perf_evlist *evlist,
49
struct perf_evsel *evsel);
50
+LIBPERF_API void perf_evlist__remove(struct perf_evlist *evlist,
51
+ struct perf_evsel *evsel);
52
53
#endif /* __LIBPERF_EVLIST_H */
54
diff --git a/tools/perf/lib/libperf.map b/tools/perf/lib/libperf.map
55
index 06ccf31eb24d..168339f89a2e 100644
56
--- a/tools/perf/lib/libperf.map
57
+++ b/tools/perf/lib/libperf.map
58
59
perf_evsel__init;
60
perf_evlist__init;
61
perf_evlist__add;
62
+ perf_evlist__remove;
63
local:
64
*;
65
};
66
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
67
index f2b86f49ab8d..9b0108c23010 100644
68
--- a/tools/perf/util/evlist.c
69
+++ b/tools/perf/util/evlist.c
70
71
void evlist__remove(struct evlist *evlist, struct evsel *evsel)
72
{
73
evsel->evlist = NULL;
74
- list_del_init(&evsel->core.node);
75
+ perf_evlist__remove(&evlist->core, &evsel->core);
76
evlist->nr_entries -= 1;
77
}
78
79
80