Skip to content

Commit 47da6e4

Browse files
anakryikoAlexei Starovoitov
authored andcommitted
selftests/bpf: remove perf buffer helpers
libbpf's perf_buffer API supersedes trace_helper.h's helpers. Remove those helpers after all existing users were already moved to perf_buffer API. Signed-off-by: Andrii Nakryiko <[email protected]> Acked-by: Song Liu <[email protected]> Signed-off-by: Alexei Starovoitov <[email protected]>
1 parent c17bec5 commit 47da6e4

File tree

2 files changed

+0
-134
lines changed

2 files changed

+0
-134
lines changed

tools/testing/selftests/bpf/trace_helpers.c

Lines changed: 0 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -86,128 +86,3 @@ long ksym_get_addr(const char *name)
8686

8787
return 0;
8888
}
89-
90-
static int page_size;
91-
static int page_cnt = 8;
92-
static struct perf_event_mmap_page *header;
93-
94-
int perf_event_mmap_header(int fd, struct perf_event_mmap_page **header)
95-
{
96-
void *base;
97-
int mmap_size;
98-
99-
page_size = getpagesize();
100-
mmap_size = page_size * (page_cnt + 1);
101-
102-
base = mmap(NULL, mmap_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
103-
if (base == MAP_FAILED) {
104-
printf("mmap err\n");
105-
return -1;
106-
}
107-
108-
*header = base;
109-
return 0;
110-
}
111-
112-
int perf_event_mmap(int fd)
113-
{
114-
return perf_event_mmap_header(fd, &header);
115-
}
116-
117-
static int perf_event_poll(int fd)
118-
{
119-
struct pollfd pfd = { .fd = fd, .events = POLLIN };
120-
121-
return poll(&pfd, 1, 1000);
122-
}
123-
124-
struct perf_event_sample {
125-
struct perf_event_header header;
126-
__u32 size;
127-
char data[];
128-
};
129-
130-
static enum bpf_perf_event_ret
131-
bpf_perf_event_print(struct perf_event_header *hdr, void *private_data)
132-
{
133-
struct perf_event_sample *e = (struct perf_event_sample *)hdr;
134-
perf_event_print_fn fn = private_data;
135-
int ret;
136-
137-
if (e->header.type == PERF_RECORD_SAMPLE) {
138-
ret = fn(e->data, e->size);
139-
if (ret != LIBBPF_PERF_EVENT_CONT)
140-
return ret;
141-
} else if (e->header.type == PERF_RECORD_LOST) {
142-
struct {
143-
struct perf_event_header header;
144-
__u64 id;
145-
__u64 lost;
146-
} *lost = (void *) e;
147-
printf("lost %lld events\n", lost->lost);
148-
} else {
149-
printf("unknown event type=%d size=%d\n",
150-
e->header.type, e->header.size);
151-
}
152-
153-
return LIBBPF_PERF_EVENT_CONT;
154-
}
155-
156-
int perf_event_poller(int fd, perf_event_print_fn output_fn)
157-
{
158-
enum bpf_perf_event_ret ret;
159-
void *buf = NULL;
160-
size_t len = 0;
161-
162-
for (;;) {
163-
perf_event_poll(fd);
164-
ret = bpf_perf_event_read_simple(header, page_cnt * page_size,
165-
page_size, &buf, &len,
166-
bpf_perf_event_print,
167-
output_fn);
168-
if (ret != LIBBPF_PERF_EVENT_CONT)
169-
break;
170-
}
171-
free(buf);
172-
173-
return ret;
174-
}
175-
176-
int perf_event_poller_multi(int *fds, struct perf_event_mmap_page **headers,
177-
int num_fds, perf_event_print_fn output_fn)
178-
{
179-
enum bpf_perf_event_ret ret;
180-
struct pollfd *pfds;
181-
void *buf = NULL;
182-
size_t len = 0;
183-
int i;
184-
185-
pfds = calloc(num_fds, sizeof(*pfds));
186-
if (!pfds)
187-
return LIBBPF_PERF_EVENT_ERROR;
188-
189-
for (i = 0; i < num_fds; i++) {
190-
pfds[i].fd = fds[i];
191-
pfds[i].events = POLLIN;
192-
}
193-
194-
for (;;) {
195-
poll(pfds, num_fds, 1000);
196-
for (i = 0; i < num_fds; i++) {
197-
if (!pfds[i].revents)
198-
continue;
199-
200-
ret = bpf_perf_event_read_simple(headers[i],
201-
page_cnt * page_size,
202-
page_size, &buf, &len,
203-
bpf_perf_event_print,
204-
output_fn);
205-
if (ret != LIBBPF_PERF_EVENT_CONT)
206-
break;
207-
}
208-
}
209-
free(buf);
210-
free(pfds);
211-
212-
return ret;
213-
}

tools/testing/selftests/bpf/trace_helpers.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#define __TRACE_HELPER_H
44

55
#include <libbpf.h>
6-
#include <linux/perf_event.h>
76

87
struct ksym {
98
long addr;
@@ -14,12 +13,4 @@ int load_kallsyms(void);
1413
struct ksym *ksym_search(long key);
1514
long ksym_get_addr(const char *name);
1615

17-
typedef enum bpf_perf_event_ret (*perf_event_print_fn)(void *data, int size);
18-
19-
int perf_event_mmap(int fd);
20-
int perf_event_mmap_header(int fd, struct perf_event_mmap_page **header);
21-
/* return LIBBPF_PERF_EVENT_DONE or LIBBPF_PERF_EVENT_ERROR */
22-
int perf_event_poller(int fd, perf_event_print_fn output_fn);
23-
int perf_event_poller_multi(int *fds, struct perf_event_mmap_page **headers,
24-
int num_fds, perf_event_print_fn output_fn);
2516
#endif

0 commit comments

Comments
 (0)