| .. | .. |
|---|
| 3 | 3 | #include <inttypes.h> |
|---|
| 4 | 4 | /* For the CLR_() macros */ |
|---|
| 5 | 5 | #include <pthread.h> |
|---|
| 6 | +#include <stdlib.h> |
|---|
| 7 | +#include <perf/cpumap.h> |
|---|
| 6 | 8 | |
|---|
| 9 | +#include "debug.h" |
|---|
| 7 | 10 | #include "evlist.h" |
|---|
| 8 | 11 | #include "evsel.h" |
|---|
| 9 | 12 | #include "thread_map.h" |
|---|
| 10 | | -#include "cpumap.h" |
|---|
| 11 | 13 | #include "tests.h" |
|---|
| 14 | +#include "util/mmap.h" |
|---|
| 12 | 15 | #include <linux/err.h> |
|---|
| 13 | 16 | #include <linux/kernel.h> |
|---|
| 17 | +#include <linux/string.h> |
|---|
| 18 | +#include <perf/evlist.h> |
|---|
| 19 | +#include <perf/mmap.h> |
|---|
| 14 | 20 | |
|---|
| 15 | 21 | /* |
|---|
| 16 | 22 | * This test will generate random numbers of calls to some getpid syscalls, |
|---|
| .. | .. |
|---|
| 27 | 33 | { |
|---|
| 28 | 34 | int err = -1; |
|---|
| 29 | 35 | union perf_event *event; |
|---|
| 30 | | - struct thread_map *threads; |
|---|
| 31 | | - struct cpu_map *cpus; |
|---|
| 32 | | - struct perf_evlist *evlist; |
|---|
| 36 | + struct perf_thread_map *threads; |
|---|
| 37 | + struct perf_cpu_map *cpus; |
|---|
| 38 | + struct evlist *evlist; |
|---|
| 33 | 39 | cpu_set_t cpu_set; |
|---|
| 34 | 40 | const char *syscall_names[] = { "getsid", "getppid", "getpgid", }; |
|---|
| 35 | 41 | pid_t (*syscalls[])(void) = { (void *)getsid, getppid, (void*)getpgid }; |
|---|
| 36 | 42 | #define nsyscalls ARRAY_SIZE(syscall_names) |
|---|
| 37 | 43 | unsigned int nr_events[nsyscalls], |
|---|
| 38 | 44 | expected_nr_events[nsyscalls], i, j; |
|---|
| 39 | | - struct perf_evsel *evsels[nsyscalls], *evsel; |
|---|
| 45 | + struct evsel *evsels[nsyscalls], *evsel; |
|---|
| 40 | 46 | char sbuf[STRERR_BUFSIZE]; |
|---|
| 41 | | - struct perf_mmap *md; |
|---|
| 47 | + struct mmap *md; |
|---|
| 42 | 48 | |
|---|
| 43 | 49 | threads = thread_map__new(-1, getpid(), UINT_MAX); |
|---|
| 44 | 50 | if (threads == NULL) { |
|---|
| .. | .. |
|---|
| 46 | 52 | return -1; |
|---|
| 47 | 53 | } |
|---|
| 48 | 54 | |
|---|
| 49 | | - cpus = cpu_map__new(NULL); |
|---|
| 55 | + cpus = perf_cpu_map__new(NULL); |
|---|
| 50 | 56 | if (cpus == NULL) { |
|---|
| 51 | | - pr_debug("cpu_map__new\n"); |
|---|
| 57 | + pr_debug("perf_cpu_map__new\n"); |
|---|
| 52 | 58 | goto out_free_threads; |
|---|
| 53 | 59 | } |
|---|
| 54 | 60 | |
|---|
| .. | .. |
|---|
| 61 | 67 | goto out_free_cpus; |
|---|
| 62 | 68 | } |
|---|
| 63 | 69 | |
|---|
| 64 | | - evlist = perf_evlist__new(); |
|---|
| 70 | + evlist = evlist__new(); |
|---|
| 65 | 71 | if (evlist == NULL) { |
|---|
| 66 | 72 | pr_debug("perf_evlist__new\n"); |
|---|
| 67 | 73 | goto out_free_cpus; |
|---|
| 68 | 74 | } |
|---|
| 69 | 75 | |
|---|
| 70 | | - perf_evlist__set_maps(evlist, cpus, threads); |
|---|
| 76 | + perf_evlist__set_maps(&evlist->core, cpus, threads); |
|---|
| 71 | 77 | |
|---|
| 72 | 78 | for (i = 0; i < nsyscalls; ++i) { |
|---|
| 73 | 79 | char name[64]; |
|---|
| 74 | 80 | |
|---|
| 75 | 81 | snprintf(name, sizeof(name), "sys_enter_%s", syscall_names[i]); |
|---|
| 76 | | - evsels[i] = perf_evsel__newtp("syscalls", name); |
|---|
| 82 | + evsels[i] = evsel__newtp("syscalls", name); |
|---|
| 77 | 83 | if (IS_ERR(evsels[i])) { |
|---|
| 78 | | - pr_debug("perf_evsel__new(%s)\n", name); |
|---|
| 84 | + pr_debug("evsel__new(%s)\n", name); |
|---|
| 79 | 85 | goto out_delete_evlist; |
|---|
| 80 | 86 | } |
|---|
| 81 | 87 | |
|---|
| 82 | | - evsels[i]->attr.wakeup_events = 1; |
|---|
| 83 | | - perf_evsel__set_sample_id(evsels[i], false); |
|---|
| 88 | + evsels[i]->core.attr.wakeup_events = 1; |
|---|
| 89 | + evsel__set_sample_id(evsels[i], false); |
|---|
| 84 | 90 | |
|---|
| 85 | | - perf_evlist__add(evlist, evsels[i]); |
|---|
| 91 | + evlist__add(evlist, evsels[i]); |
|---|
| 86 | 92 | |
|---|
| 87 | | - if (perf_evsel__open(evsels[i], cpus, threads) < 0) { |
|---|
| 93 | + if (evsel__open(evsels[i], cpus, threads) < 0) { |
|---|
| 88 | 94 | pr_debug("failed to open counter: %s, " |
|---|
| 89 | 95 | "tweak /proc/sys/kernel/perf_event_paranoid?\n", |
|---|
| 90 | 96 | str_error_r(errno, sbuf, sizeof(sbuf))); |
|---|
| .. | .. |
|---|
| 95 | 101 | expected_nr_events[i] = 1 + rand() % 127; |
|---|
| 96 | 102 | } |
|---|
| 97 | 103 | |
|---|
| 98 | | - if (perf_evlist__mmap(evlist, 128) < 0) { |
|---|
| 104 | + if (evlist__mmap(evlist, 128) < 0) { |
|---|
| 99 | 105 | pr_debug("failed to mmap events: %d (%s)\n", errno, |
|---|
| 100 | 106 | str_error_r(errno, sbuf, sizeof(sbuf))); |
|---|
| 101 | 107 | goto out_delete_evlist; |
|---|
| .. | .. |
|---|
| 108 | 114 | } |
|---|
| 109 | 115 | |
|---|
| 110 | 116 | md = &evlist->mmap[0]; |
|---|
| 111 | | - if (perf_mmap__read_init(md) < 0) |
|---|
| 117 | + if (perf_mmap__read_init(&md->core) < 0) |
|---|
| 112 | 118 | goto out_init; |
|---|
| 113 | 119 | |
|---|
| 114 | | - while ((event = perf_mmap__read_event(md)) != NULL) { |
|---|
| 120 | + while ((event = perf_mmap__read_event(&md->core)) != NULL) { |
|---|
| 115 | 121 | struct perf_sample sample; |
|---|
| 116 | 122 | |
|---|
| 117 | 123 | if (event->header.type != PERF_RECORD_SAMPLE) { |
|---|
| .. | .. |
|---|
| 134 | 140 | goto out_delete_evlist; |
|---|
| 135 | 141 | } |
|---|
| 136 | 142 | nr_events[evsel->idx]++; |
|---|
| 137 | | - perf_mmap__consume(md); |
|---|
| 143 | + perf_mmap__consume(&md->core); |
|---|
| 138 | 144 | } |
|---|
| 139 | | - perf_mmap__read_done(md); |
|---|
| 145 | + perf_mmap__read_done(&md->core); |
|---|
| 140 | 146 | |
|---|
| 141 | 147 | out_init: |
|---|
| 142 | 148 | err = 0; |
|---|
| .. | .. |
|---|
| 144 | 150 | if (nr_events[evsel->idx] != expected_nr_events[evsel->idx]) { |
|---|
| 145 | 151 | pr_debug("expected %d %s events, got %d\n", |
|---|
| 146 | 152 | expected_nr_events[evsel->idx], |
|---|
| 147 | | - perf_evsel__name(evsel), nr_events[evsel->idx]); |
|---|
| 153 | + evsel__name(evsel), nr_events[evsel->idx]); |
|---|
| 148 | 154 | err = -1; |
|---|
| 149 | 155 | goto out_delete_evlist; |
|---|
| 150 | 156 | } |
|---|
| 151 | 157 | } |
|---|
| 152 | 158 | |
|---|
| 153 | 159 | out_delete_evlist: |
|---|
| 154 | | - perf_evlist__delete(evlist); |
|---|
| 160 | + evlist__delete(evlist); |
|---|
| 155 | 161 | cpus = NULL; |
|---|
| 156 | 162 | threads = NULL; |
|---|
| 157 | 163 | out_free_cpus: |
|---|
| 158 | | - cpu_map__put(cpus); |
|---|
| 164 | + perf_cpu_map__put(cpus); |
|---|
| 159 | 165 | out_free_threads: |
|---|
| 160 | | - thread_map__put(threads); |
|---|
| 166 | + perf_thread_map__put(threads); |
|---|
| 161 | 167 | return err; |
|---|
| 162 | 168 | } |
|---|