|
@@ -22,36 +22,16 @@ int test__basic_mmap(void)
|
|
|
struct thread_map *threads;
|
|
|
struct cpu_map *cpus;
|
|
|
struct perf_evlist *evlist;
|
|
|
- struct perf_event_attr attr = {
|
|
|
- .type = PERF_TYPE_TRACEPOINT,
|
|
|
- .read_format = PERF_FORMAT_ID,
|
|
|
- .sample_type = PERF_SAMPLE_ID,
|
|
|
- .watermark = 0,
|
|
|
- };
|
|
|
cpu_set_t cpu_set;
|
|
|
const char *syscall_names[] = { "getsid", "getppid", "getpgrp",
|
|
|
"getpgid", };
|
|
|
pid_t (*syscalls[])(void) = { (void *)getsid, getppid, getpgrp,
|
|
|
(void*)getpgid };
|
|
|
#define nsyscalls ARRAY_SIZE(syscall_names)
|
|
|
- int ids[nsyscalls];
|
|
|
unsigned int nr_events[nsyscalls],
|
|
|
expected_nr_events[nsyscalls], i, j;
|
|
|
struct perf_evsel *evsels[nsyscalls], *evsel;
|
|
|
|
|
|
- for (i = 0; i < nsyscalls; ++i) {
|
|
|
- char name[64];
|
|
|
-
|
|
|
- snprintf(name, sizeof(name), "sys_enter_%s", syscall_names[i]);
|
|
|
- ids[i] = trace_event__id(name);
|
|
|
- if (ids[i] < 0) {
|
|
|
- pr_debug("Is debugfs mounted on /sys/kernel/debug?\n");
|
|
|
- return -1;
|
|
|
- }
|
|
|
- nr_events[i] = 0;
|
|
|
- expected_nr_events[i] = random() % 257;
|
|
|
- }
|
|
|
-
|
|
|
threads = thread_map__new(-1, getpid(), UINT_MAX);
|
|
|
if (threads == NULL) {
|
|
|
pr_debug("thread_map__new\n");
|
|
@@ -79,18 +59,20 @@ int test__basic_mmap(void)
|
|
|
goto out_free_cpus;
|
|
|
}
|
|
|
|
|
|
- /* anonymous union fields, can't be initialized above */
|
|
|
- attr.wakeup_events = 1;
|
|
|
- attr.sample_period = 1;
|
|
|
-
|
|
|
for (i = 0; i < nsyscalls; ++i) {
|
|
|
- attr.config = ids[i];
|
|
|
- evsels[i] = perf_evsel__new(&attr, i);
|
|
|
+ char name[64];
|
|
|
+
|
|
|
+ snprintf(name, sizeof(name), "sys_enter_%s", syscall_names[i]);
|
|
|
+ evsels[i] = perf_evsel__newtp("syscalls", name, i);
|
|
|
if (evsels[i] == NULL) {
|
|
|
pr_debug("perf_evsel__new\n");
|
|
|
goto out_free_evlist;
|
|
|
}
|
|
|
|
|
|
+ evsels[i]->attr.wakeup_events = 1;
|
|
|
+ evsels[i]->attr.read_format |= PERF_FORMAT_ID;
|
|
|
+ perf_evsel__set_sample_bit(evsels[i], ID);
|
|
|
+
|
|
|
perf_evlist__add(evlist, evsels[i]);
|
|
|
|
|
|
if (perf_evsel__open(evsels[i], cpus, threads) < 0) {
|
|
@@ -99,6 +81,9 @@ int test__basic_mmap(void)
|
|
|
strerror(errno));
|
|
|
goto out_close_fd;
|
|
|
}
|
|
|
+
|
|
|
+ nr_events[i] = 0;
|
|
|
+ expected_nr_events[i] = 1 + rand() % 127;
|
|
|
}
|
|
|
|
|
|
if (perf_evlist__mmap(evlist, 128, true) < 0) {
|