diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-21 12:15:07 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-21 12:15:07 -0400 |
| commit | 43c1266ce4dc06bfd236cec31e11e9ecd69c0bef (patch) | |
| tree | 40a86739ca4c36200f447f655b01c57cfe646e26 /tools | |
| parent | b8c7f1dc5ca4e0d10709182233cdab932cef593d (diff) | |
| parent | 57c0c15b5244320065374ad2c54f4fbec77a6428 (diff) | |
Merge branch 'perfcounters-rename-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'perfcounters-rename-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
perf: Tidy up after the big rename
perf: Do the big rename: Performance Counters -> Performance Events
perf_counter: Rename 'event' to event_id/hw_event
perf_counter: Rename list_entry -> group_entry, counter_list -> group_list
Manually resolved some fairly trivial conflicts with the tracing tree in
include/trace/ftrace.h and kernel/trace/trace_syscalls.c.
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/perf/Makefile | 2 | ||||
| -rw-r--r-- | tools/perf/builtin-annotate.c | 28 | ||||
| -rw-r--r-- | tools/perf/builtin-record.c | 22 | ||||
| -rw-r--r-- | tools/perf/builtin-report.c | 48 | ||||
| -rw-r--r-- | tools/perf/builtin-sched.c | 20 | ||||
| -rw-r--r-- | tools/perf/builtin-stat.c | 10 | ||||
| -rw-r--r-- | tools/perf/builtin-timechart.c | 14 | ||||
| -rw-r--r-- | tools/perf/builtin-top.c | 12 | ||||
| -rw-r--r-- | tools/perf/builtin-trace.c | 22 | ||||
| -rw-r--r-- | tools/perf/design.txt | 58 | ||||
| -rw-r--r-- | tools/perf/perf.h | 12 | ||||
| -rw-r--r-- | tools/perf/util/event.h | 4 | ||||
| -rw-r--r-- | tools/perf/util/header.c | 6 | ||||
| -rw-r--r-- | tools/perf/util/header.h | 8 | ||||
| -rw-r--r-- | tools/perf/util/parse-events.c | 32 | ||||
| -rw-r--r-- | tools/perf/util/parse-events.h | 2 | ||||
| -rw-r--r-- | tools/perf/util/trace-event-info.c | 8 | ||||
| -rw-r--r-- | tools/perf/util/trace-event.h | 2 |
18 files changed, 155 insertions, 155 deletions
diff --git a/tools/perf/Makefile b/tools/perf/Makefile index 0aba8b6e9c54..b5f1953b6144 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile | |||
| @@ -318,7 +318,7 @@ export PERL_PATH | |||
| 318 | 318 | ||
| 319 | LIB_FILE=libperf.a | 319 | LIB_FILE=libperf.a |
| 320 | 320 | ||
| 321 | LIB_H += ../../include/linux/perf_counter.h | 321 | LIB_H += ../../include/linux/perf_event.h |
| 322 | LIB_H += ../../include/linux/rbtree.h | 322 | LIB_H += ../../include/linux/rbtree.h |
| 323 | LIB_H += ../../include/linux/list.h | 323 | LIB_H += ../../include/linux/list.h |
| 324 | LIB_H += util/include/linux/list.h | 324 | LIB_H += util/include/linux/list.h |
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index 043d85b7e254..1ec741615814 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c | |||
| @@ -505,7 +505,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 505 | return -1; | 505 | return -1; |
| 506 | } | 506 | } |
| 507 | 507 | ||
| 508 | if (event->header.misc & PERF_EVENT_MISC_KERNEL) { | 508 | if (event->header.misc & PERF_RECORD_MISC_KERNEL) { |
| 509 | show = SHOW_KERNEL; | 509 | show = SHOW_KERNEL; |
| 510 | level = 'k'; | 510 | level = 'k'; |
| 511 | 511 | ||
| @@ -513,7 +513,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 513 | 513 | ||
| 514 | dump_printf(" ...... dso: %s\n", dso->name); | 514 | dump_printf(" ...... dso: %s\n", dso->name); |
| 515 | 515 | ||
| 516 | } else if (event->header.misc & PERF_EVENT_MISC_USER) { | 516 | } else if (event->header.misc & PERF_RECORD_MISC_USER) { |
| 517 | 517 | ||
| 518 | show = SHOW_USER; | 518 | show = SHOW_USER; |
| 519 | level = '.'; | 519 | level = '.'; |
| @@ -565,7 +565,7 @@ process_mmap_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 565 | 565 | ||
| 566 | thread = threads__findnew(event->mmap.pid, &threads, &last_match); | 566 | thread = threads__findnew(event->mmap.pid, &threads, &last_match); |
| 567 | 567 | ||
| 568 | dump_printf("%p [%p]: PERF_EVENT_MMAP %d: [%p(%p) @ %p]: %s\n", | 568 | dump_printf("%p [%p]: PERF_RECORD_MMAP %d: [%p(%p) @ %p]: %s\n", |
| 569 | (void *)(offset + head), | 569 | (void *)(offset + head), |
| 570 | (void *)(long)(event->header.size), | 570 | (void *)(long)(event->header.size), |
| 571 | event->mmap.pid, | 571 | event->mmap.pid, |
| @@ -575,7 +575,7 @@ process_mmap_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 575 | event->mmap.filename); | 575 | event->mmap.filename); |
| 576 | 576 | ||
| 577 | if (thread == NULL || map == NULL) { | 577 | if (thread == NULL || map == NULL) { |
| 578 | dump_printf("problem processing PERF_EVENT_MMAP, skipping event.\n"); | 578 | dump_printf("problem processing PERF_RECORD_MMAP, skipping event.\n"); |
| 579 | return 0; | 579 | return 0; |
| 580 | } | 580 | } |
| 581 | 581 | ||
| @@ -591,14 +591,14 @@ process_comm_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 591 | struct thread *thread; | 591 | struct thread *thread; |
| 592 | 592 | ||
| 593 | thread = threads__findnew(event->comm.pid, &threads, &last_match); | 593 | thread = threads__findnew(event->comm.pid, &threads, &last_match); |
| 594 | dump_printf("%p [%p]: PERF_EVENT_COMM: %s:%d\n", | 594 | dump_printf("%p [%p]: PERF_RECORD_COMM: %s:%d\n", |
| 595 | (void *)(offset + head), | 595 | (void *)(offset + head), |
| 596 | (void *)(long)(event->header.size), | 596 | (void *)(long)(event->header.size), |
| 597 | event->comm.comm, event->comm.pid); | 597 | event->comm.comm, event->comm.pid); |
| 598 | 598 | ||
| 599 | if (thread == NULL || | 599 | if (thread == NULL || |
| 600 | thread__set_comm(thread, event->comm.comm)) { | 600 | thread__set_comm(thread, event->comm.comm)) { |
| 601 | dump_printf("problem processing PERF_EVENT_COMM, skipping event.\n"); | 601 | dump_printf("problem processing PERF_RECORD_COMM, skipping event.\n"); |
| 602 | return -1; | 602 | return -1; |
| 603 | } | 603 | } |
| 604 | total_comm++; | 604 | total_comm++; |
| @@ -614,7 +614,7 @@ process_fork_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 614 | 614 | ||
| 615 | thread = threads__findnew(event->fork.pid, &threads, &last_match); | 615 | thread = threads__findnew(event->fork.pid, &threads, &last_match); |
| 616 | parent = threads__findnew(event->fork.ppid, &threads, &last_match); | 616 | parent = threads__findnew(event->fork.ppid, &threads, &last_match); |
| 617 | dump_printf("%p [%p]: PERF_EVENT_FORK: %d:%d\n", | 617 | dump_printf("%p [%p]: PERF_RECORD_FORK: %d:%d\n", |
| 618 | (void *)(offset + head), | 618 | (void *)(offset + head), |
| 619 | (void *)(long)(event->header.size), | 619 | (void *)(long)(event->header.size), |
| 620 | event->fork.pid, event->fork.ppid); | 620 | event->fork.pid, event->fork.ppid); |
| @@ -627,7 +627,7 @@ process_fork_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 627 | return 0; | 627 | return 0; |
| 628 | 628 | ||
| 629 | if (!thread || !parent || thread__fork(thread, parent)) { | 629 | if (!thread || !parent || thread__fork(thread, parent)) { |
| 630 | dump_printf("problem processing PERF_EVENT_FORK, skipping event.\n"); | 630 | dump_printf("problem processing PERF_RECORD_FORK, skipping event.\n"); |
| 631 | return -1; | 631 | return -1; |
| 632 | } | 632 | } |
| 633 | total_fork++; | 633 | total_fork++; |
| @@ -639,23 +639,23 @@ static int | |||
| 639 | process_event(event_t *event, unsigned long offset, unsigned long head) | 639 | process_event(event_t *event, unsigned long offset, unsigned long head) |
| 640 | { | 640 | { |
| 641 | switch (event->header.type) { | 641 | switch (event->header.type) { |
| 642 | case PERF_EVENT_SAMPLE: | 642 | case PERF_RECORD_SAMPLE: |
| 643 | return process_sample_event(event, offset, head); | 643 | return process_sample_event(event, offset, head); |
| 644 | 644 | ||
| 645 | case PERF_EVENT_MMAP: | 645 | case PERF_RECORD_MMAP: |
| 646 | return process_mmap_event(event, offset, head); | 646 | return process_mmap_event(event, offset, head); |
| 647 | 647 | ||
| 648 | case PERF_EVENT_COMM: | 648 | case PERF_RECORD_COMM: |
| 649 | return process_comm_event(event, offset, head); | 649 | return process_comm_event(event, offset, head); |
| 650 | 650 | ||
| 651 | case PERF_EVENT_FORK: | 651 | case PERF_RECORD_FORK: |
| 652 | return process_fork_event(event, offset, head); | 652 | return process_fork_event(event, offset, head); |
| 653 | /* | 653 | /* |
| 654 | * We dont process them right now but they are fine: | 654 | * We dont process them right now but they are fine: |
| 655 | */ | 655 | */ |
| 656 | 656 | ||
| 657 | case PERF_EVENT_THROTTLE: | 657 | case PERF_RECORD_THROTTLE: |
| 658 | case PERF_EVENT_UNTHROTTLE: | 658 | case PERF_RECORD_UNTHROTTLE: |
| 659 | return 0; | 659 | return 0; |
| 660 | 660 | ||
| 661 | default: | 661 | default: |
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 2459e5a22ed8..a5a050af8e7d 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c | |||
| @@ -77,7 +77,7 @@ static struct mmap_data mmap_array[MAX_NR_CPUS][MAX_COUNTERS]; | |||
| 77 | 77 | ||
| 78 | static unsigned long mmap_read_head(struct mmap_data *md) | 78 | static unsigned long mmap_read_head(struct mmap_data *md) |
| 79 | { | 79 | { |
| 80 | struct perf_counter_mmap_page *pc = md->base; | 80 | struct perf_event_mmap_page *pc = md->base; |
| 81 | long head; | 81 | long head; |
| 82 | 82 | ||
| 83 | head = pc->data_head; | 83 | head = pc->data_head; |
| @@ -88,7 +88,7 @@ static unsigned long mmap_read_head(struct mmap_data *md) | |||
| 88 | 88 | ||
| 89 | static void mmap_write_tail(struct mmap_data *md, unsigned long tail) | 89 | static void mmap_write_tail(struct mmap_data *md, unsigned long tail) |
| 90 | { | 90 | { |
| 91 | struct perf_counter_mmap_page *pc = md->base; | 91 | struct perf_event_mmap_page *pc = md->base; |
| 92 | 92 | ||
| 93 | /* | 93 | /* |
| 94 | * ensure all reads are done before we write the tail out. | 94 | * ensure all reads are done before we write the tail out. |
| @@ -233,7 +233,7 @@ static pid_t pid_synthesize_comm_event(pid_t pid, int full) | |||
| 233 | } | 233 | } |
| 234 | } | 234 | } |
| 235 | 235 | ||
| 236 | comm_ev.header.type = PERF_EVENT_COMM; | 236 | comm_ev.header.type = PERF_RECORD_COMM; |
| 237 | size = ALIGN(size, sizeof(u64)); | 237 | size = ALIGN(size, sizeof(u64)); |
| 238 | comm_ev.header.size = sizeof(comm_ev) - (sizeof(comm_ev.comm) - size); | 238 | comm_ev.header.size = sizeof(comm_ev) - (sizeof(comm_ev.comm) - size); |
| 239 | 239 | ||
| @@ -288,7 +288,7 @@ static void pid_synthesize_mmap_samples(pid_t pid, pid_t tgid) | |||
| 288 | while (1) { | 288 | while (1) { |
| 289 | char bf[BUFSIZ], *pbf = bf; | 289 | char bf[BUFSIZ], *pbf = bf; |
| 290 | struct mmap_event mmap_ev = { | 290 | struct mmap_event mmap_ev = { |
| 291 | .header = { .type = PERF_EVENT_MMAP }, | 291 | .header = { .type = PERF_RECORD_MMAP }, |
| 292 | }; | 292 | }; |
| 293 | int n; | 293 | int n; |
| 294 | size_t size; | 294 | size_t size; |
| @@ -355,7 +355,7 @@ static void synthesize_all(void) | |||
| 355 | 355 | ||
| 356 | static int group_fd; | 356 | static int group_fd; |
| 357 | 357 | ||
| 358 | static struct perf_header_attr *get_header_attr(struct perf_counter_attr *a, int nr) | 358 | static struct perf_header_attr *get_header_attr(struct perf_event_attr *a, int nr) |
| 359 | { | 359 | { |
| 360 | struct perf_header_attr *h_attr; | 360 | struct perf_header_attr *h_attr; |
| 361 | 361 | ||
| @@ -371,7 +371,7 @@ static struct perf_header_attr *get_header_attr(struct perf_counter_attr *a, int | |||
| 371 | 371 | ||
| 372 | static void create_counter(int counter, int cpu, pid_t pid) | 372 | static void create_counter(int counter, int cpu, pid_t pid) |
| 373 | { | 373 | { |
| 374 | struct perf_counter_attr *attr = attrs + counter; | 374 | struct perf_event_attr *attr = attrs + counter; |
| 375 | struct perf_header_attr *h_attr; | 375 | struct perf_header_attr *h_attr; |
| 376 | int track = !counter; /* only the first counter needs these */ | 376 | int track = !counter; /* only the first counter needs these */ |
| 377 | struct { | 377 | struct { |
| @@ -417,7 +417,7 @@ static void create_counter(int counter, int cpu, pid_t pid) | |||
| 417 | attr->disabled = 1; | 417 | attr->disabled = 1; |
| 418 | 418 | ||
| 419 | try_again: | 419 | try_again: |
| 420 | fd[nr_cpu][counter] = sys_perf_counter_open(attr, pid, cpu, group_fd, 0); | 420 | fd[nr_cpu][counter] = sys_perf_event_open(attr, pid, cpu, group_fd, 0); |
| 421 | 421 | ||
| 422 | if (fd[nr_cpu][counter] < 0) { | 422 | if (fd[nr_cpu][counter] < 0) { |
| 423 | int err = errno; | 423 | int err = errno; |
| @@ -444,7 +444,7 @@ try_again: | |||
| 444 | printf("\n"); | 444 | printf("\n"); |
| 445 | error("perfcounter syscall returned with %d (%s)\n", | 445 | error("perfcounter syscall returned with %d (%s)\n", |
| 446 | fd[nr_cpu][counter], strerror(err)); | 446 | fd[nr_cpu][counter], strerror(err)); |
| 447 | die("No CONFIG_PERF_COUNTERS=y kernel support configured?\n"); | 447 | die("No CONFIG_PERF_EVENTS=y kernel support configured?\n"); |
| 448 | exit(-1); | 448 | exit(-1); |
| 449 | } | 449 | } |
| 450 | 450 | ||
| @@ -478,7 +478,7 @@ try_again: | |||
| 478 | if (multiplex && fd[nr_cpu][counter] != multiplex_fd) { | 478 | if (multiplex && fd[nr_cpu][counter] != multiplex_fd) { |
| 479 | int ret; | 479 | int ret; |
| 480 | 480 | ||
| 481 | ret = ioctl(fd[nr_cpu][counter], PERF_COUNTER_IOC_SET_OUTPUT, multiplex_fd); | 481 | ret = ioctl(fd[nr_cpu][counter], PERF_EVENT_IOC_SET_OUTPUT, multiplex_fd); |
| 482 | assert(ret != -1); | 482 | assert(ret != -1); |
| 483 | } else { | 483 | } else { |
| 484 | event_array[nr_poll].fd = fd[nr_cpu][counter]; | 484 | event_array[nr_poll].fd = fd[nr_cpu][counter]; |
| @@ -496,7 +496,7 @@ try_again: | |||
| 496 | } | 496 | } |
| 497 | } | 497 | } |
| 498 | 498 | ||
| 499 | ioctl(fd[nr_cpu][counter], PERF_COUNTER_IOC_ENABLE); | 499 | ioctl(fd[nr_cpu][counter], PERF_EVENT_IOC_ENABLE); |
| 500 | } | 500 | } |
| 501 | 501 | ||
| 502 | static void open_counters(int cpu, pid_t pid) | 502 | static void open_counters(int cpu, pid_t pid) |
| @@ -642,7 +642,7 @@ static int __cmd_record(int argc, const char **argv) | |||
| 642 | if (done) { | 642 | if (done) { |
| 643 | for (i = 0; i < nr_cpu; i++) { | 643 | for (i = 0; i < nr_cpu; i++) { |
| 644 | for (counter = 0; counter < nr_counters; counter++) | 644 | for (counter = 0; counter < nr_counters; counter++) |
| 645 | ioctl(fd[i][counter], PERF_COUNTER_IOC_DISABLE); | 645 | ioctl(fd[i][counter], PERF_EVENT_IOC_DISABLE); |
| 646 | } | 646 | } |
| 647 | } | 647 | } |
| 648 | } | 648 | } |
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index cdf9a8d27bb9..19669c20088e 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c | |||
| @@ -1121,7 +1121,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1121 | more_data += sizeof(u64); | 1121 | more_data += sizeof(u64); |
| 1122 | } | 1122 | } |
| 1123 | 1123 | ||
| 1124 | dump_printf("%p [%p]: PERF_EVENT_SAMPLE (IP, %d): %d/%d: %p period: %Ld\n", | 1124 | dump_printf("%p [%p]: PERF_RECORD_SAMPLE (IP, %d): %d/%d: %p period: %Ld\n", |
| 1125 | (void *)(offset + head), | 1125 | (void *)(offset + head), |
| 1126 | (void *)(long)(event->header.size), | 1126 | (void *)(long)(event->header.size), |
| 1127 | event->header.misc, | 1127 | event->header.misc, |
| @@ -1158,9 +1158,9 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1158 | if (comm_list && !strlist__has_entry(comm_list, thread->comm)) | 1158 | if (comm_list && !strlist__has_entry(comm_list, thread->comm)) |
| 1159 | return 0; | 1159 | return 0; |
| 1160 | 1160 | ||
| 1161 | cpumode = event->header.misc & PERF_EVENT_MISC_CPUMODE_MASK; | 1161 | cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; |
| 1162 | 1162 | ||
| 1163 | if (cpumode == PERF_EVENT_MISC_KERNEL) { | 1163 | if (cpumode == PERF_RECORD_MISC_KERNEL) { |
| 1164 | show = SHOW_KERNEL; | 1164 | show = SHOW_KERNEL; |
| 1165 | level = 'k'; | 1165 | level = 'k'; |
| 1166 | 1166 | ||
| @@ -1168,7 +1168,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1168 | 1168 | ||
| 1169 | dump_printf(" ...... dso: %s\n", dso->name); | 1169 | dump_printf(" ...... dso: %s\n", dso->name); |
| 1170 | 1170 | ||
| 1171 | } else if (cpumode == PERF_EVENT_MISC_USER) { | 1171 | } else if (cpumode == PERF_RECORD_MISC_USER) { |
| 1172 | 1172 | ||
| 1173 | show = SHOW_USER; | 1173 | show = SHOW_USER; |
| 1174 | level = '.'; | 1174 | level = '.'; |
| @@ -1210,7 +1210,7 @@ process_mmap_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1210 | 1210 | ||
| 1211 | thread = threads__findnew(event->mmap.pid, &threads, &last_match); | 1211 | thread = threads__findnew(event->mmap.pid, &threads, &last_match); |
| 1212 | 1212 | ||
| 1213 | dump_printf("%p [%p]: PERF_EVENT_MMAP %d/%d: [%p(%p) @ %p]: %s\n", | 1213 | dump_printf("%p [%p]: PERF_RECORD_MMAP %d/%d: [%p(%p) @ %p]: %s\n", |
| 1214 | (void *)(offset + head), | 1214 | (void *)(offset + head), |
| 1215 | (void *)(long)(event->header.size), | 1215 | (void *)(long)(event->header.size), |
| 1216 | event->mmap.pid, | 1216 | event->mmap.pid, |
| @@ -1221,7 +1221,7 @@ process_mmap_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1221 | event->mmap.filename); | 1221 | event->mmap.filename); |
| 1222 | 1222 | ||
| 1223 | if (thread == NULL || map == NULL) { | 1223 | if (thread == NULL || map == NULL) { |
| 1224 | dump_printf("problem processing PERF_EVENT_MMAP, skipping event.\n"); | 1224 | dump_printf("problem processing PERF_RECORD_MMAP, skipping event.\n"); |
| 1225 | return 0; | 1225 | return 0; |
| 1226 | } | 1226 | } |
| 1227 | 1227 | ||
| @@ -1238,14 +1238,14 @@ process_comm_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1238 | 1238 | ||
| 1239 | thread = threads__findnew(event->comm.pid, &threads, &last_match); | 1239 | thread = threads__findnew(event->comm.pid, &threads, &last_match); |
| 1240 | 1240 | ||
| 1241 | dump_printf("%p [%p]: PERF_EVENT_COMM: %s:%d\n", | 1241 | dump_printf("%p [%p]: PERF_RECORD_COMM: %s:%d\n", |
| 1242 | (void *)(offset + head), | 1242 | (void *)(offset + head), |
| 1243 | (void *)(long)(event->header.size), | 1243 | (void *)(long)(event->header.size), |
| 1244 | event->comm.comm, event->comm.pid); | 1244 | event->comm.comm, event->comm.pid); |
| 1245 | 1245 | ||
| 1246 | if (thread == NULL || | 1246 | if (thread == NULL || |
| 1247 | thread__set_comm_adjust(thread, event->comm.comm)) { | 1247 | thread__set_comm_adjust(thread, event->comm.comm)) { |
| 1248 | dump_printf("problem processing PERF_EVENT_COMM, skipping event.\n"); | 1248 | dump_printf("problem processing PERF_RECORD_COMM, skipping event.\n"); |
| 1249 | return -1; | 1249 | return -1; |
| 1250 | } | 1250 | } |
| 1251 | total_comm++; | 1251 | total_comm++; |
| @@ -1262,10 +1262,10 @@ process_task_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1262 | thread = threads__findnew(event->fork.pid, &threads, &last_match); | 1262 | thread = threads__findnew(event->fork.pid, &threads, &last_match); |
| 1263 | parent = threads__findnew(event->fork.ppid, &threads, &last_match); | 1263 | parent = threads__findnew(event->fork.ppid, &threads, &last_match); |
| 1264 | 1264 | ||
| 1265 | dump_printf("%p [%p]: PERF_EVENT_%s: (%d:%d):(%d:%d)\n", | 1265 | dump_printf("%p [%p]: PERF_RECORD_%s: (%d:%d):(%d:%d)\n", |
| 1266 | (void *)(offset + head), | 1266 | (void *)(offset + head), |
| 1267 | (void *)(long)(event->header.size), | 1267 | (void *)(long)(event->header.size), |
| 1268 | event->header.type == PERF_EVENT_FORK ? "FORK" : "EXIT", | 1268 | event->header.type == PERF_RECORD_FORK ? "FORK" : "EXIT", |
| 1269 | event->fork.pid, event->fork.tid, | 1269 | event->fork.pid, event->fork.tid, |
| 1270 | event->fork.ppid, event->fork.ptid); | 1270 | event->fork.ppid, event->fork.ptid); |
| 1271 | 1271 | ||
| @@ -1276,11 +1276,11 @@ process_task_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1276 | if (thread == parent) | 1276 | if (thread == parent) |
| 1277 | return 0; | 1277 | return 0; |
| 1278 | 1278 | ||
| 1279 | if (event->header.type == PERF_EVENT_EXIT) | 1279 | if (event->header.type == PERF_RECORD_EXIT) |
| 1280 | return 0; | 1280 | return 0; |
| 1281 | 1281 | ||
| 1282 | if (!thread || !parent || thread__fork(thread, parent)) { | 1282 | if (!thread || !parent || thread__fork(thread, parent)) { |
| 1283 | dump_printf("problem processing PERF_EVENT_FORK, skipping event.\n"); | 1283 | dump_printf("problem processing PERF_RECORD_FORK, skipping event.\n"); |
| 1284 | return -1; | 1284 | return -1; |
| 1285 | } | 1285 | } |
| 1286 | total_fork++; | 1286 | total_fork++; |
| @@ -1291,7 +1291,7 @@ process_task_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1291 | static int | 1291 | static int |
| 1292 | process_lost_event(event_t *event, unsigned long offset, unsigned long head) | 1292 | process_lost_event(event_t *event, unsigned long offset, unsigned long head) |
| 1293 | { | 1293 | { |
| 1294 | dump_printf("%p [%p]: PERF_EVENT_LOST: id:%Ld: lost:%Ld\n", | 1294 | dump_printf("%p [%p]: PERF_RECORD_LOST: id:%Ld: lost:%Ld\n", |
| 1295 | (void *)(offset + head), | 1295 | (void *)(offset + head), |
| 1296 | (void *)(long)(event->header.size), | 1296 | (void *)(long)(event->header.size), |
| 1297 | event->lost.id, | 1297 | event->lost.id, |
| @@ -1305,7 +1305,7 @@ process_lost_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1305 | static int | 1305 | static int |
| 1306 | process_read_event(event_t *event, unsigned long offset, unsigned long head) | 1306 | process_read_event(event_t *event, unsigned long offset, unsigned long head) |
| 1307 | { | 1307 | { |
| 1308 | struct perf_counter_attr *attr; | 1308 | struct perf_event_attr *attr; |
| 1309 | 1309 | ||
| 1310 | attr = perf_header__find_attr(event->read.id, header); | 1310 | attr = perf_header__find_attr(event->read.id, header); |
| 1311 | 1311 | ||
| @@ -1319,7 +1319,7 @@ process_read_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1319 | event->read.value); | 1319 | event->read.value); |
| 1320 | } | 1320 | } |
| 1321 | 1321 | ||
| 1322 | dump_printf("%p [%p]: PERF_EVENT_READ: %d %d %s %Lu\n", | 1322 | dump_printf("%p [%p]: PERF_RECORD_READ: %d %d %s %Lu\n", |
| 1323 | (void *)(offset + head), | 1323 | (void *)(offset + head), |
| 1324 | (void *)(long)(event->header.size), | 1324 | (void *)(long)(event->header.size), |
| 1325 | event->read.pid, | 1325 | event->read.pid, |
| @@ -1337,31 +1337,31 @@ process_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1337 | trace_event(event); | 1337 | trace_event(event); |
| 1338 | 1338 | ||
| 1339 | switch (event->header.type) { | 1339 | switch (event->header.type) { |
| 1340 | case PERF_EVENT_SAMPLE: | 1340 | case PERF_RECORD_SAMPLE: |
| 1341 | return process_sample_event(event, offset, head); | 1341 | return process_sample_event(event, offset, head); |
| 1342 | 1342 | ||
| 1343 | case PERF_EVENT_MMAP: | 1343 | case PERF_RECORD_MMAP: |
| 1344 | return process_mmap_event(event, offset, head); | 1344 | return process_mmap_event(event, offset, head); |
| 1345 | 1345 | ||
| 1346 | case PERF_EVENT_COMM: | 1346 | case PERF_RECORD_COMM: |
| 1347 | return process_comm_event(event, offset, head); | 1347 | return process_comm_event(event, offset, head); |
| 1348 | 1348 | ||
| 1349 | case PERF_EVENT_FORK: | 1349 | case PERF_RECORD_FORK: |
| 1350 | case PERF_EVENT_EXIT: | 1350 | case PERF_RECORD_EXIT: |
| 1351 | return process_task_event(event, offset, head); | 1351 | return process_task_event(event, offset, head); |
| 1352 | 1352 | ||
| 1353 | case PERF_EVENT_LOST: | 1353 | case PERF_RECORD_LOST: |
| 1354 | return process_lost_event(event, offset, head); | 1354 | return process_lost_event(event, offset, head); |
| 1355 | 1355 | ||
| 1356 | case PERF_EVENT_READ: | 1356 | case PERF_RECORD_READ: |
| 1357 | return process_read_event(event, offset, head); | 1357 | return process_read_event(event, offset, head); |
| 1358 | 1358 | ||
| 1359 | /* | 1359 | /* |
| 1360 | * We dont process them right now but they are fine: | 1360 | * We dont process them right now but they are fine: |
| 1361 | */ | 1361 | */ |
| 1362 | 1362 | ||
| 1363 | case PERF_EVENT_THROTTLE: | 1363 | case PERF_RECORD_THROTTLE: |
| 1364 | case PERF_EVENT_UNTHROTTLE: | 1364 | case PERF_RECORD_UNTHROTTLE: |
| 1365 | return 0; | 1365 | return 0; |
| 1366 | 1366 | ||
| 1367 | default: | 1367 | default: |
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index 275d79c6627a..ea9c15c0cdfe 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c | |||
| @@ -1573,7 +1573,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1573 | more_data += sizeof(u64); | 1573 | more_data += sizeof(u64); |
| 1574 | } | 1574 | } |
| 1575 | 1575 | ||
| 1576 | dump_printf("%p [%p]: PERF_EVENT_SAMPLE (IP, %d): %d/%d: %p period: %Ld\n", | 1576 | dump_printf("%p [%p]: PERF_RECORD_SAMPLE (IP, %d): %d/%d: %p period: %Ld\n", |
| 1577 | (void *)(offset + head), | 1577 | (void *)(offset + head), |
| 1578 | (void *)(long)(event->header.size), | 1578 | (void *)(long)(event->header.size), |
| 1579 | event->header.misc, | 1579 | event->header.misc, |
| @@ -1589,9 +1589,9 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1589 | return -1; | 1589 | return -1; |
| 1590 | } | 1590 | } |
| 1591 | 1591 | ||
| 1592 | cpumode = event->header.misc & PERF_EVENT_MISC_CPUMODE_MASK; | 1592 | cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; |
| 1593 | 1593 | ||
| 1594 | if (cpumode == PERF_EVENT_MISC_KERNEL) { | 1594 | if (cpumode == PERF_RECORD_MISC_KERNEL) { |
| 1595 | show = SHOW_KERNEL; | 1595 | show = SHOW_KERNEL; |
| 1596 | level = 'k'; | 1596 | level = 'k'; |
| 1597 | 1597 | ||
| @@ -1599,7 +1599,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1599 | 1599 | ||
| 1600 | dump_printf(" ...... dso: %s\n", dso->name); | 1600 | dump_printf(" ...... dso: %s\n", dso->name); |
| 1601 | 1601 | ||
| 1602 | } else if (cpumode == PERF_EVENT_MISC_USER) { | 1602 | } else if (cpumode == PERF_RECORD_MISC_USER) { |
| 1603 | 1603 | ||
| 1604 | show = SHOW_USER; | 1604 | show = SHOW_USER; |
| 1605 | level = '.'; | 1605 | level = '.'; |
| @@ -1626,23 +1626,23 @@ process_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 1626 | 1626 | ||
| 1627 | nr_events++; | 1627 | nr_events++; |
| 1628 | switch (event->header.type) { | 1628 | switch (event->header.type) { |
| 1629 | case PERF_EVENT_MMAP: | 1629 | case PERF_RECORD_MMAP: |
| 1630 | return 0; | 1630 | return 0; |
| 1631 | case PERF_EVENT_LOST: | 1631 | case PERF_RECORD_LOST: |
| 1632 | nr_lost_chunks++; | 1632 | nr_lost_chunks++; |
| 1633 | nr_lost_events += event->lost.lost; | 1633 | nr_lost_events += event->lost.lost; |
| 1634 | return 0; | 1634 | return 0; |
| 1635 | 1635 | ||
| 1636 | case PERF_EVENT_COMM: | 1636 | case PERF_RECORD_COMM: |
| 1637 | return process_comm_event(event, offset, head); | 1637 | return process_comm_event(event, offset, head); |
| 1638 | 1638 | ||
| 1639 | case PERF_EVENT_EXIT ... PERF_EVENT_READ: | 1639 | case PERF_RECORD_EXIT ... PERF_RECORD_READ: |
| 1640 | return 0; | 1640 | return 0; |
| 1641 | 1641 | ||
| 1642 | case PERF_EVENT_SAMPLE: | 1642 | case PERF_RECORD_SAMPLE: |
| 1643 | return process_sample_event(event, offset, head); | 1643 | return process_sample_event(event, offset, head); |
| 1644 | 1644 | ||
| 1645 | case PERF_EVENT_MAX: | 1645 | case PERF_RECORD_MAX: |
| 1646 | default: | 1646 | default: |
| 1647 | return -1; | 1647 | return -1; |
| 1648 | } | 1648 | } |
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 61b828236c11..16af2d82e858 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c | |||
| @@ -48,7 +48,7 @@ | |||
| 48 | #include <sys/prctl.h> | 48 | #include <sys/prctl.h> |
| 49 | #include <math.h> | 49 | #include <math.h> |
| 50 | 50 | ||
| 51 | static struct perf_counter_attr default_attrs[] = { | 51 | static struct perf_event_attr default_attrs[] = { |
| 52 | 52 | ||
| 53 | { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_TASK_CLOCK }, | 53 | { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_TASK_CLOCK }, |
| 54 | { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_CONTEXT_SWITCHES}, | 54 | { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_CONTEXT_SWITCHES}, |
| @@ -130,11 +130,11 @@ struct stats runtime_cycles_stats; | |||
| 130 | attrs[counter].config == PERF_COUNT_##c) | 130 | attrs[counter].config == PERF_COUNT_##c) |
| 131 | 131 | ||
| 132 | #define ERR_PERF_OPEN \ | 132 | #define ERR_PERF_OPEN \ |
| 133 | "Error: counter %d, sys_perf_counter_open() syscall returned with %d (%s)\n" | 133 | "Error: counter %d, sys_perf_event_open() syscall returned with %d (%s)\n" |
| 134 | 134 | ||
| 135 | static void create_perf_stat_counter(int counter, int pid) | 135 | static void create_perf_stat_counter(int counter, int pid) |
| 136 | { | 136 | { |
| 137 | struct perf_counter_attr *attr = attrs + counter; | 137 | struct perf_event_attr *attr = attrs + counter; |
| 138 | 138 | ||
| 139 | if (scale) | 139 | if (scale) |
| 140 | attr->read_format = PERF_FORMAT_TOTAL_TIME_ENABLED | | 140 | attr->read_format = PERF_FORMAT_TOTAL_TIME_ENABLED | |
| @@ -144,7 +144,7 @@ static void create_perf_stat_counter(int counter, int pid) | |||
| 144 | unsigned int cpu; | 144 | unsigned int cpu; |
| 145 | 145 | ||
| 146 | for (cpu = 0; cpu < nr_cpus; cpu++) { | 146 | for (cpu = 0; cpu < nr_cpus; cpu++) { |
| 147 | fd[cpu][counter] = sys_perf_counter_open(attr, -1, cpu, -1, 0); | 147 | fd[cpu][counter] = sys_perf_event_open(attr, -1, cpu, -1, 0); |
| 148 | if (fd[cpu][counter] < 0 && verbose) | 148 | if (fd[cpu][counter] < 0 && verbose) |
| 149 | fprintf(stderr, ERR_PERF_OPEN, counter, | 149 | fprintf(stderr, ERR_PERF_OPEN, counter, |
| 150 | fd[cpu][counter], strerror(errno)); | 150 | fd[cpu][counter], strerror(errno)); |
| @@ -154,7 +154,7 @@ static void create_perf_stat_counter(int counter, int pid) | |||
| 154 | attr->disabled = 1; | 154 | attr->disabled = 1; |
| 155 | attr->enable_on_exec = 1; | 155 | attr->enable_on_exec = 1; |
| 156 | 156 | ||
| 157 | fd[0][counter] = sys_perf_counter_open(attr, pid, -1, -1, 0); | 157 | fd[0][counter] = sys_perf_event_open(attr, pid, -1, -1, 0); |
| 158 | if (fd[0][counter] < 0 && verbose) | 158 | if (fd[0][counter] < 0 && verbose) |
| 159 | fprintf(stderr, ERR_PERF_OPEN, counter, | 159 | fprintf(stderr, ERR_PERF_OPEN, counter, |
| 160 | fd[0][counter], strerror(errno)); | 160 | fd[0][counter], strerror(errno)); |
diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c index 600406396274..4405681b3134 100644 --- a/tools/perf/builtin-timechart.c +++ b/tools/perf/builtin-timechart.c | |||
| @@ -937,21 +937,21 @@ process_event(event_t *event) | |||
| 937 | 937 | ||
| 938 | switch (event->header.type) { | 938 | switch (event->header.type) { |
| 939 | 939 | ||
| 940 | case PERF_EVENT_COMM: | 940 | case PERF_RECORD_COMM: |
| 941 | return process_comm_event(event); | 941 | return process_comm_event(event); |
| 942 | case PERF_EVENT_FORK: | 942 | case PERF_RECORD_FORK: |
| 943 | return process_fork_event(event); | 943 | return process_fork_event(event); |
| 944 | case PERF_EVENT_EXIT: | 944 | case PERF_RECORD_EXIT: |
| 945 | return process_exit_event(event); | 945 | return process_exit_event(event); |
| 946 | case PERF_EVENT_SAMPLE: | 946 | case PERF_RECORD_SAMPLE: |
| 947 | return queue_sample_event(event); | 947 | return queue_sample_event(event); |
| 948 | 948 | ||
| 949 | /* | 949 | /* |
| 950 | * We dont process them right now but they are fine: | 950 | * We dont process them right now but they are fine: |
| 951 | */ | 951 | */ |
| 952 | case PERF_EVENT_MMAP: | 952 | case PERF_RECORD_MMAP: |
| 953 | case PERF_EVENT_THROTTLE: | 953 | case PERF_RECORD_THROTTLE: |
| 954 | case PERF_EVENT_UNTHROTTLE: | 954 | case PERF_RECORD_UNTHROTTLE: |
| 955 | return 0; | 955 | return 0; |
| 956 | 956 | ||
| 957 | default: | 957 | default: |
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 4002ccb36750..1ca88896eee4 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c | |||
| @@ -901,7 +901,7 @@ struct mmap_data { | |||
| 901 | 901 | ||
| 902 | static unsigned int mmap_read_head(struct mmap_data *md) | 902 | static unsigned int mmap_read_head(struct mmap_data *md) |
| 903 | { | 903 | { |
| 904 | struct perf_counter_mmap_page *pc = md->base; | 904 | struct perf_event_mmap_page *pc = md->base; |
| 905 | int head; | 905 | int head; |
| 906 | 906 | ||
| 907 | head = pc->data_head; | 907 | head = pc->data_head; |
| @@ -977,9 +977,9 @@ static void mmap_read_counter(struct mmap_data *md) | |||
| 977 | 977 | ||
| 978 | old += size; | 978 | old += size; |
| 979 | 979 | ||
| 980 | if (event->header.type == PERF_EVENT_SAMPLE) { | 980 | if (event->header.type == PERF_RECORD_SAMPLE) { |
| 981 | int user = | 981 | int user = |
| 982 | (event->header.misc & PERF_EVENT_MISC_CPUMODE_MASK) == PERF_EVENT_MISC_USER; | 982 | (event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK) == PERF_RECORD_MISC_USER; |
| 983 | process_event(event->ip.ip, md->counter, user); | 983 | process_event(event->ip.ip, md->counter, user); |
| 984 | } | 984 | } |
| 985 | } | 985 | } |
| @@ -1005,7 +1005,7 @@ int group_fd; | |||
| 1005 | 1005 | ||
| 1006 | static void start_counter(int i, int counter) | 1006 | static void start_counter(int i, int counter) |
| 1007 | { | 1007 | { |
| 1008 | struct perf_counter_attr *attr; | 1008 | struct perf_event_attr *attr; |
| 1009 | int cpu; | 1009 | int cpu; |
| 1010 | 1010 | ||
| 1011 | cpu = profile_cpu; | 1011 | cpu = profile_cpu; |
| @@ -1019,7 +1019,7 @@ static void start_counter(int i, int counter) | |||
| 1019 | attr->inherit = (cpu < 0) && inherit; | 1019 | attr->inherit = (cpu < 0) && inherit; |
| 1020 | 1020 | ||
| 1021 | try_again: | 1021 | try_again: |
| 1022 | fd[i][counter] = sys_perf_counter_open(attr, target_pid, cpu, group_fd, 0); | 1022 | fd[i][counter] = sys_perf_event_open(attr, target_pid, cpu, group_fd, 0); |
| 1023 | 1023 | ||
| 1024 | if (fd[i][counter] < 0) { | 1024 | if (fd[i][counter] < 0) { |
| 1025 | int err = errno; | 1025 | int err = errno; |
| @@ -1044,7 +1044,7 @@ try_again: | |||
| 1044 | printf("\n"); | 1044 | printf("\n"); |
| 1045 | error("perfcounter syscall returned with %d (%s)\n", | 1045 | error("perfcounter syscall returned with %d (%s)\n", |
| 1046 | fd[i][counter], strerror(err)); | 1046 | fd[i][counter], strerror(err)); |
| 1047 | die("No CONFIG_PERF_COUNTERS=y kernel support configured?\n"); | 1047 | die("No CONFIG_PERF_EVENTS=y kernel support configured?\n"); |
| 1048 | exit(-1); | 1048 | exit(-1); |
| 1049 | } | 1049 | } |
| 1050 | assert(fd[i][counter] >= 0); | 1050 | assert(fd[i][counter] >= 0); |
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index 914ab366e369..e9d256e2f47d 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c | |||
| @@ -35,14 +35,14 @@ process_comm_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 35 | 35 | ||
| 36 | thread = threads__findnew(event->comm.pid, &threads, &last_match); | 36 | thread = threads__findnew(event->comm.pid, &threads, &last_match); |
| 37 | 37 | ||
| 38 | dump_printf("%p [%p]: PERF_EVENT_COMM: %s:%d\n", | 38 | dump_printf("%p [%p]: PERF_RECORD_COMM: %s:%d\n", |
| 39 | (void *)(offset + head), | 39 | (void *)(offset + head), |
| 40 | (void *)(long)(event->header.size), | 40 | (void *)(long)(event->header.size), |
| 41 | event->comm.comm, event->comm.pid); | 41 | event->comm.comm, event->comm.pid); |
| 42 | 42 | ||
| 43 | if (thread == NULL || | 43 | if (thread == NULL || |
| 44 | thread__set_comm(thread, event->comm.comm)) { | 44 | thread__set_comm(thread, event->comm.comm)) { |
| 45 | dump_printf("problem processing PERF_EVENT_COMM, skipping event.\n"); | 45 | dump_printf("problem processing PERF_RECORD_COMM, skipping event.\n"); |
| 46 | return -1; | 46 | return -1; |
| 47 | } | 47 | } |
| 48 | total_comm++; | 48 | total_comm++; |
| @@ -82,7 +82,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 82 | more_data += sizeof(u64); | 82 | more_data += sizeof(u64); |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | dump_printf("%p [%p]: PERF_EVENT_SAMPLE (IP, %d): %d/%d: %p period: %Ld\n", | 85 | dump_printf("%p [%p]: PERF_RECORD_SAMPLE (IP, %d): %d/%d: %p period: %Ld\n", |
| 86 | (void *)(offset + head), | 86 | (void *)(offset + head), |
| 87 | (void *)(long)(event->header.size), | 87 | (void *)(long)(event->header.size), |
| 88 | event->header.misc, | 88 | event->header.misc, |
| @@ -98,9 +98,9 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 98 | return -1; | 98 | return -1; |
| 99 | } | 99 | } |
| 100 | 100 | ||
| 101 | cpumode = event->header.misc & PERF_EVENT_MISC_CPUMODE_MASK; | 101 | cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; |
| 102 | 102 | ||
| 103 | if (cpumode == PERF_EVENT_MISC_KERNEL) { | 103 | if (cpumode == PERF_RECORD_MISC_KERNEL) { |
| 104 | show = SHOW_KERNEL; | 104 | show = SHOW_KERNEL; |
| 105 | level = 'k'; | 105 | level = 'k'; |
| 106 | 106 | ||
| @@ -108,7 +108,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 108 | 108 | ||
| 109 | dump_printf(" ...... dso: %s\n", dso->name); | 109 | dump_printf(" ...... dso: %s\n", dso->name); |
| 110 | 110 | ||
| 111 | } else if (cpumode == PERF_EVENT_MISC_USER) { | 111 | } else if (cpumode == PERF_RECORD_MISC_USER) { |
| 112 | 112 | ||
| 113 | show = SHOW_USER; | 113 | show = SHOW_USER; |
| 114 | level = '.'; | 114 | level = '.'; |
| @@ -146,19 +146,19 @@ process_event(event_t *event, unsigned long offset, unsigned long head) | |||
| 146 | trace_event(event); | 146 | trace_event(event); |
| 147 | 147 | ||
| 148 | switch (event->header.type) { | 148 | switch (event->header.type) { |
| 149 | case PERF_EVENT_MMAP ... PERF_EVENT_LOST: | 149 | case PERF_RECORD_MMAP ... PERF_RECORD_LOST: |
| 150 | return 0; | 150 | return 0; |
| 151 | 151 | ||
| 152 | case PERF_EVENT_COMM: | 152 | case PERF_RECORD_COMM: |
| 153 | return process_comm_event(event, offset, head); | 153 | return process_comm_event(event, offset, head); |
| 154 | 154 | ||
| 155 | case PERF_EVENT_EXIT ... PERF_EVENT_READ: | 155 | case PERF_RECORD_EXIT ... PERF_RECORD_READ: |
| 156 | return 0; | 156 | return 0; |
| 157 | 157 | ||
| 158 | case PERF_EVENT_SAMPLE: | 158 | case PERF_RECORD_SAMPLE: |
| 159 | return process_sample_event(event, offset, head); | 159 | return process_sample_event(event, offset, head); |
| 160 | 160 | ||
| 161 | case PERF_EVENT_MAX: | 161 | case PERF_RECORD_MAX: |
| 162 | default: | 162 | default: |
| 163 | return -1; | 163 | return -1; |
| 164 | } | 164 | } |
diff --git a/tools/perf/design.txt b/tools/perf/design.txt index f71e0d245cba..f1946d107b10 100644 --- a/tools/perf/design.txt +++ b/tools/perf/design.txt | |||
| @@ -18,10 +18,10 @@ underlying hardware counters. | |||
| 18 | Performance counters are accessed via special file descriptors. | 18 | Performance counters are accessed via special file descriptors. |
| 19 | There's one file descriptor per virtual counter used. | 19 | There's one file descriptor per virtual counter used. |
| 20 | 20 | ||
| 21 | The special file descriptor is opened via the perf_counter_open() | 21 | The special file descriptor is opened via the perf_event_open() |
| 22 | system call: | 22 | system call: |
| 23 | 23 | ||
| 24 | int sys_perf_counter_open(struct perf_counter_hw_event *hw_event_uptr, | 24 | int sys_perf_event_open(struct perf_event_hw_event *hw_event_uptr, |
| 25 | pid_t pid, int cpu, int group_fd, | 25 | pid_t pid, int cpu, int group_fd, |
| 26 | unsigned long flags); | 26 | unsigned long flags); |
| 27 | 27 | ||
| @@ -32,9 +32,9 @@ can be used to set the blocking mode, etc. | |||
| 32 | Multiple counters can be kept open at a time, and the counters | 32 | Multiple counters can be kept open at a time, and the counters |
| 33 | can be poll()ed. | 33 | can be poll()ed. |
| 34 | 34 | ||
| 35 | When creating a new counter fd, 'perf_counter_hw_event' is: | 35 | When creating a new counter fd, 'perf_event_hw_event' is: |
| 36 | 36 | ||
| 37 | struct perf_counter_hw_event { | 37 | struct perf_event_hw_event { |
| 38 | /* | 38 | /* |
| 39 | * The MSB of the config word signifies if the rest contains cpu | 39 | * The MSB of the config word signifies if the rest contains cpu |
| 40 | * specific (raw) counter configuration data, if unset, the next | 40 | * specific (raw) counter configuration data, if unset, the next |
| @@ -93,7 +93,7 @@ specified by 'event_id': | |||
| 93 | 93 | ||
| 94 | /* | 94 | /* |
| 95 | * Generalized performance counter event types, used by the hw_event.event_id | 95 | * Generalized performance counter event types, used by the hw_event.event_id |
| 96 | * parameter of the sys_perf_counter_open() syscall: | 96 | * parameter of the sys_perf_event_open() syscall: |
| 97 | */ | 97 | */ |
| 98 | enum hw_event_ids { | 98 | enum hw_event_ids { |
| 99 | /* | 99 | /* |
| @@ -159,7 +159,7 @@ in size. | |||
| 159 | * reads on the counter should return the indicated quantities, | 159 | * reads on the counter should return the indicated quantities, |
| 160 | * in increasing order of bit value, after the counter value. | 160 | * in increasing order of bit value, after the counter value. |
| 161 | */ | 161 | */ |
| 162 | enum perf_counter_read_format { | 162 | enum perf_event_read_format { |
| 163 | PERF_FORMAT_TOTAL_TIME_ENABLED = 1, | 163 | PERF_FORMAT_TOTAL_TIME_ENABLED = 1, |
| 164 | PERF_FORMAT_TOTAL_TIME_RUNNING = 2, | 164 | PERF_FORMAT_TOTAL_TIME_RUNNING = 2, |
| 165 | }; | 165 | }; |
| @@ -178,7 +178,7 @@ interrupt: | |||
| 178 | * Bits that can be set in hw_event.record_type to request information | 178 | * Bits that can be set in hw_event.record_type to request information |
| 179 | * in the overflow packets. | 179 | * in the overflow packets. |
| 180 | */ | 180 | */ |
| 181 | enum perf_counter_record_format { | 181 | enum perf_event_record_format { |
| 182 | PERF_RECORD_IP = 1U << 0, | 182 | PERF_RECORD_IP = 1U << 0, |
| 183 | PERF_RECORD_TID = 1U << 1, | 183 | PERF_RECORD_TID = 1U << 1, |
| 184 | PERF_RECORD_TIME = 1U << 2, | 184 | PERF_RECORD_TIME = 1U << 2, |
| @@ -228,7 +228,7 @@ these events are recorded in the ring-buffer (see below). | |||
| 228 | The 'comm' bit allows tracking of process comm data on process creation. | 228 | The 'comm' bit allows tracking of process comm data on process creation. |
| 229 | This too is recorded in the ring-buffer (see below). | 229 | This too is recorded in the ring-buffer (see below). |
| 230 | 230 | ||
| 231 | The 'pid' parameter to the perf_counter_open() system call allows the | 231 | The 'pid' parameter to the perf_event_open() system call allows the |
| 232 | counter to be specific to a task: | 232 | counter to be specific to a task: |
| 233 | 233 | ||
| 234 | pid == 0: if the pid parameter is zero, the counter is attached to the | 234 | pid == 0: if the pid parameter is zero, the counter is attached to the |
| @@ -258,7 +258,7 @@ The 'flags' parameter is currently unused and must be zero. | |||
| 258 | 258 | ||
| 259 | The 'group_fd' parameter allows counter "groups" to be set up. A | 259 | The 'group_fd' parameter allows counter "groups" to be set up. A |
| 260 | counter group has one counter which is the group "leader". The leader | 260 | counter group has one counter which is the group "leader". The leader |
| 261 | is created first, with group_fd = -1 in the perf_counter_open call | 261 | is created first, with group_fd = -1 in the perf_event_open call |
| 262 | that creates it. The rest of the group members are created | 262 | that creates it. The rest of the group members are created |
| 263 | subsequently, with group_fd giving the fd of the group leader. | 263 | subsequently, with group_fd giving the fd of the group leader. |
| 264 | (A single counter on its own is created with group_fd = -1 and is | 264 | (A single counter on its own is created with group_fd = -1 and is |
| @@ -277,13 +277,13 @@ tracking are logged into a ring-buffer. This ring-buffer is created and | |||
| 277 | accessed through mmap(). | 277 | accessed through mmap(). |
| 278 | 278 | ||
| 279 | The mmap size should be 1+2^n pages, where the first page is a meta-data page | 279 | The mmap size should be 1+2^n pages, where the first page is a meta-data page |
| 280 | (struct perf_counter_mmap_page) that contains various bits of information such | 280 | (struct perf_event_mmap_page) that contains various bits of information such |
| 281 | as where the ring-buffer head is. | 281 | as where the ring-buffer head is. |
| 282 | 282 | ||
| 283 | /* | 283 | /* |
| 284 | * Structure of the page that can be mapped via mmap | 284 | * Structure of the page that can be mapped via mmap |
| 285 | */ | 285 | */ |
| 286 | struct perf_counter_mmap_page { | 286 | struct perf_event_mmap_page { |
| 287 | __u32 version; /* version number of this structure */ | 287 | __u32 version; /* version number of this structure */ |
| 288 | __u32 compat_version; /* lowest version this is compat with */ | 288 | __u32 compat_version; /* lowest version this is compat with */ |
| 289 | 289 | ||
| @@ -317,7 +317,7 @@ struct perf_counter_mmap_page { | |||
| 317 | * Control data for the mmap() data buffer. | 317 | * Control data for the mmap() data buffer. |
| 318 | * | 318 | * |
| 319 | * User-space reading this value should issue an rmb(), on SMP capable | 319 | * User-space reading this value should issue an rmb(), on SMP capable |
| 320 | * platforms, after reading this value -- see perf_counter_wakeup(). | 320 | * platforms, after reading this value -- see perf_event_wakeup(). |
| 321 | */ | 321 | */ |
| 322 | __u32 data_head; /* head in the data section */ | 322 | __u32 data_head; /* head in the data section */ |
| 323 | }; | 323 | }; |
| @@ -327,9 +327,9 @@ NOTE: the hw-counter userspace bits are arch specific and are currently only | |||
| 327 | 327 | ||
| 328 | The following 2^n pages are the ring-buffer which contains events of the form: | 328 | The following 2^n pages are the ring-buffer which contains events of the form: |
| 329 | 329 | ||
| 330 | #define PERF_EVENT_MISC_KERNEL (1 << 0) | 330 | #define PERF_RECORD_MISC_KERNEL (1 << 0) |
| 331 | #define PERF_EVENT_MISC_USER (1 << 1) | 331 | #define PERF_RECORD_MISC_USER (1 << 1) |
| 332 | #define PERF_EVENT_MISC_OVERFLOW (1 << 2) | 332 | #define PERF_RECORD_MISC_OVERFLOW (1 << 2) |
| 333 | 333 | ||
| 334 | struct perf_event_header { | 334 | struct perf_event_header { |
| 335 | __u32 type; | 335 | __u32 type; |
| @@ -353,8 +353,8 @@ enum perf_event_type { | |||
| 353 | * char filename[]; | 353 | * char filename[]; |
| 354 | * }; | 354 | * }; |
| 355 | */ | 355 | */ |
| 356 | PERF_EVENT_MMAP = 1, | 356 | PERF_RECORD_MMAP = 1, |
| 357 | PERF_EVENT_MUNMAP = 2, | 357 | PERF_RECORD_MUNMAP = 2, |
| 358 | 358 | ||
| 359 | /* | 359 | /* |
| 360 | * struct { | 360 | * struct { |
| @@ -364,10 +364,10 @@ enum perf_event_type { | |||
| 364 | * char comm[]; | 364 | * char comm[]; |
| 365 | * }; | 365 | * }; |
| 366 | */ | 366 | */ |
| 367 | PERF_EVENT_COMM = 3, | 367 | PERF_RECORD_COMM = 3, |
| 368 | 368 | ||
| 369 | /* | 369 | /* |
| 370 | * When header.misc & PERF_EVENT_MISC_OVERFLOW the event_type field | 370 | * When header.misc & PERF_RECORD_MISC_OVERFLOW the event_type field |
| 371 | * will be PERF_RECORD_* | 371 | * will be PERF_RECORD_* |
| 372 | * | 372 | * |
| 373 | * struct { | 373 | * struct { |
| @@ -397,7 +397,7 @@ Notification of new events is possible through poll()/select()/epoll() and | |||
| 397 | fcntl() managing signals. | 397 | fcntl() managing signals. |
| 398 | 398 | ||
| 399 | Normally a notification is generated for every page filled, however one can | 399 | Normally a notification is generated for every page filled, however one can |
| 400 | additionally set perf_counter_hw_event.wakeup_events to generate one every | 400 | additionally set perf_event_hw_event.wakeup_events to generate one every |
| 401 | so many counter overflow events. | 401 | so many counter overflow events. |
| 402 | 402 | ||
| 403 | Future work will include a splice() interface to the ring-buffer. | 403 | Future work will include a splice() interface to the ring-buffer. |
| @@ -409,11 +409,11 @@ events but does continue to exist and maintain its count value. | |||
| 409 | 409 | ||
| 410 | An individual counter or counter group can be enabled with | 410 | An individual counter or counter group can be enabled with |
| 411 | 411 | ||
| 412 | ioctl(fd, PERF_COUNTER_IOC_ENABLE); | 412 | ioctl(fd, PERF_EVENT_IOC_ENABLE); |
| 413 | 413 | ||
| 414 | or disabled with | 414 | or disabled with |
| 415 | 415 | ||
| 416 | ioctl(fd, PERF_COUNTER_IOC_DISABLE); | 416 | ioctl(fd, PERF_EVENT_IOC_DISABLE); |
| 417 | 417 | ||
| 418 | Enabling or disabling the leader of a group enables or disables the | 418 | Enabling or disabling the leader of a group enables or disables the |
| 419 | whole group; that is, while the group leader is disabled, none of the | 419 | whole group; that is, while the group leader is disabled, none of the |
| @@ -424,16 +424,16 @@ other counter. | |||
| 424 | 424 | ||
| 425 | Additionally, non-inherited overflow counters can use | 425 | Additionally, non-inherited overflow counters can use |
| 426 | 426 | ||
| 427 | ioctl(fd, PERF_COUNTER_IOC_REFRESH, nr); | 427 | ioctl(fd, PERF_EVENT_IOC_REFRESH, nr); |
| 428 | 428 | ||
| 429 | to enable a counter for 'nr' events, after which it gets disabled again. | 429 | to enable a counter for 'nr' events, after which it gets disabled again. |
| 430 | 430 | ||
| 431 | A process can enable or disable all the counter groups that are | 431 | A process can enable or disable all the counter groups that are |
| 432 | attached to it, using prctl: | 432 | attached to it, using prctl: |
| 433 | 433 | ||
| 434 | prctl(PR_TASK_PERF_COUNTERS_ENABLE); | 434 | prctl(PR_TASK_PERF_EVENTS_ENABLE); |
| 435 | 435 | ||
| 436 | prctl(PR_TASK_PERF_COUNTERS_DISABLE); | 436 | prctl(PR_TASK_PERF_EVENTS_DISABLE); |
| 437 | 437 | ||
| 438 | This applies to all counters on the current process, whether created | 438 | This applies to all counters on the current process, whether created |
| 439 | by this process or by another, and doesn't affect any counters that | 439 | by this process or by another, and doesn't affect any counters that |
| @@ -447,11 +447,11 @@ Arch requirements | |||
| 447 | If your architecture does not have hardware performance metrics, you can | 447 | If your architecture does not have hardware performance metrics, you can |
| 448 | still use the generic software counters based on hrtimers for sampling. | 448 | still use the generic software counters based on hrtimers for sampling. |
| 449 | 449 | ||
| 450 | So to start with, in order to add HAVE_PERF_COUNTERS to your Kconfig, you | 450 | So to start with, in order to add HAVE_PERF_EVENTS to your Kconfig, you |
| 451 | will need at least this: | 451 | will need at least this: |
| 452 | - asm/perf_counter.h - a basic stub will suffice at first | 452 | - asm/perf_event.h - a basic stub will suffice at first |
| 453 | - support for atomic64 types (and associated helper functions) | 453 | - support for atomic64 types (and associated helper functions) |
| 454 | - set_perf_counter_pending() implemented | 454 | - set_perf_event_pending() implemented |
| 455 | 455 | ||
| 456 | If your architecture does have hardware capabilities, you can override the | 456 | If your architecture does have hardware capabilities, you can override the |
| 457 | weak stub hw_perf_counter_init() to register hardware counters. | 457 | weak stub hw_perf_event_init() to register hardware counters. |
diff --git a/tools/perf/perf.h b/tools/perf/perf.h index 2abeb20d0bf3..8cc4623afd6f 100644 --- a/tools/perf/perf.h +++ b/tools/perf/perf.h | |||
| @@ -52,15 +52,15 @@ | |||
| 52 | #include <sys/types.h> | 52 | #include <sys/types.h> |
| 53 | #include <sys/syscall.h> | 53 | #include <sys/syscall.h> |
| 54 | 54 | ||
| 55 | #include "../../include/linux/perf_counter.h" | 55 | #include "../../include/linux/perf_event.h" |
| 56 | #include "util/types.h" | 56 | #include "util/types.h" |
| 57 | 57 | ||
| 58 | /* | 58 | /* |
| 59 | * prctl(PR_TASK_PERF_COUNTERS_DISABLE) will (cheaply) disable all | 59 | * prctl(PR_TASK_PERF_EVENTS_DISABLE) will (cheaply) disable all |
| 60 | * counters in the current task. | 60 | * counters in the current task. |
| 61 | */ | 61 | */ |
| 62 | #define PR_TASK_PERF_COUNTERS_DISABLE 31 | 62 | #define PR_TASK_PERF_EVENTS_DISABLE 31 |
| 63 | #define PR_TASK_PERF_COUNTERS_ENABLE 32 | 63 | #define PR_TASK_PERF_EVENTS_ENABLE 32 |
| 64 | 64 | ||
| 65 | #ifndef NSEC_PER_SEC | 65 | #ifndef NSEC_PER_SEC |
| 66 | # define NSEC_PER_SEC 1000000000ULL | 66 | # define NSEC_PER_SEC 1000000000ULL |
| @@ -90,12 +90,12 @@ static inline unsigned long long rdclock(void) | |||
| 90 | _min1 < _min2 ? _min1 : _min2; }) | 90 | _min1 < _min2 ? _min1 : _min2; }) |
| 91 | 91 | ||
| 92 | static inline int | 92 | static inline int |
| 93 | sys_perf_counter_open(struct perf_counter_attr *attr, | 93 | sys_perf_event_open(struct perf_event_attr *attr, |
| 94 | pid_t pid, int cpu, int group_fd, | 94 | pid_t pid, int cpu, int group_fd, |
| 95 | unsigned long flags) | 95 | unsigned long flags) |
| 96 | { | 96 | { |
| 97 | attr->size = sizeof(*attr); | 97 | attr->size = sizeof(*attr); |
| 98 | return syscall(__NR_perf_counter_open, attr, pid, cpu, | 98 | return syscall(__NR_perf_event_open, attr, pid, cpu, |
| 99 | group_fd, flags); | 99 | group_fd, flags); |
| 100 | } | 100 | } |
| 101 | 101 | ||
diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h index 018d414a09d1..2c9c26d6ded0 100644 --- a/tools/perf/util/event.h +++ b/tools/perf/util/event.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | #ifndef __PERF_EVENT_H | 1 | #ifndef __PERF_RECORD_H |
| 2 | #define __PERF_EVENT_H | 2 | #define __PERF_RECORD_H |
| 3 | #include "../perf.h" | 3 | #include "../perf.h" |
| 4 | #include "util.h" | 4 | #include "util.h" |
| 5 | #include <linux/list.h> | 5 | #include <linux/list.h> |
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index bb4fca3efcc3..e306857b2c2b 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | /* | 9 | /* |
| 10 | * Create new perf.data header attribute: | 10 | * Create new perf.data header attribute: |
| 11 | */ | 11 | */ |
| 12 | struct perf_header_attr *perf_header_attr__new(struct perf_counter_attr *attr) | 12 | struct perf_header_attr *perf_header_attr__new(struct perf_event_attr *attr) |
| 13 | { | 13 | { |
| 14 | struct perf_header_attr *self = malloc(sizeof(*self)); | 14 | struct perf_header_attr *self = malloc(sizeof(*self)); |
| 15 | 15 | ||
| @@ -134,7 +134,7 @@ struct perf_file_section { | |||
| 134 | }; | 134 | }; |
| 135 | 135 | ||
| 136 | struct perf_file_attr { | 136 | struct perf_file_attr { |
| 137 | struct perf_counter_attr attr; | 137 | struct perf_event_attr attr; |
| 138 | struct perf_file_section ids; | 138 | struct perf_file_section ids; |
| 139 | }; | 139 | }; |
| 140 | 140 | ||
| @@ -320,7 +320,7 @@ u64 perf_header__sample_type(struct perf_header *header) | |||
| 320 | return type; | 320 | return type; |
| 321 | } | 321 | } |
| 322 | 322 | ||
| 323 | struct perf_counter_attr * | 323 | struct perf_event_attr * |
| 324 | perf_header__find_attr(u64 id, struct perf_header *header) | 324 | perf_header__find_attr(u64 id, struct perf_header *header) |
| 325 | { | 325 | { |
| 326 | int i; | 326 | int i; |
diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h index 7b0e84a87179..a0761bc7863c 100644 --- a/tools/perf/util/header.h +++ b/tools/perf/util/header.h | |||
| @@ -1,12 +1,12 @@ | |||
| 1 | #ifndef _PERF_HEADER_H | 1 | #ifndef _PERF_HEADER_H |
| 2 | #define _PERF_HEADER_H | 2 | #define _PERF_HEADER_H |
| 3 | 3 | ||
| 4 | #include "../../../include/linux/perf_counter.h" | 4 | #include "../../../include/linux/perf_event.h" |
| 5 | #include <sys/types.h> | 5 | #include <sys/types.h> |
| 6 | #include "types.h" | 6 | #include "types.h" |
| 7 | 7 | ||
| 8 | struct perf_header_attr { | 8 | struct perf_header_attr { |
| 9 | struct perf_counter_attr attr; | 9 | struct perf_event_attr attr; |
| 10 | int ids, size; | 10 | int ids, size; |
| 11 | u64 *id; | 11 | u64 *id; |
| 12 | off_t id_offset; | 12 | off_t id_offset; |
| @@ -34,11 +34,11 @@ char *perf_header__find_event(u64 id); | |||
| 34 | 34 | ||
| 35 | 35 | ||
| 36 | struct perf_header_attr * | 36 | struct perf_header_attr * |
| 37 | perf_header_attr__new(struct perf_counter_attr *attr); | 37 | perf_header_attr__new(struct perf_event_attr *attr); |
| 38 | void perf_header_attr__add_id(struct perf_header_attr *self, u64 id); | 38 | void perf_header_attr__add_id(struct perf_header_attr *self, u64 id); |
| 39 | 39 | ||
| 40 | u64 perf_header__sample_type(struct perf_header *header); | 40 | u64 perf_header__sample_type(struct perf_header *header); |
| 41 | struct perf_counter_attr * | 41 | struct perf_event_attr * |
| 42 | perf_header__find_attr(u64 id, struct perf_header *header); | 42 | perf_header__find_attr(u64 id, struct perf_header *header); |
| 43 | 43 | ||
| 44 | 44 | ||
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 89172fd0038b..13ab4b842d49 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | 10 | ||
| 11 | int nr_counters; | 11 | int nr_counters; |
| 12 | 12 | ||
| 13 | struct perf_counter_attr attrs[MAX_COUNTERS]; | 13 | struct perf_event_attr attrs[MAX_COUNTERS]; |
| 14 | 14 | ||
| 15 | struct event_symbol { | 15 | struct event_symbol { |
| 16 | u8 type; | 16 | u8 type; |
| @@ -48,13 +48,13 @@ static struct event_symbol event_symbols[] = { | |||
| 48 | { CSW(CPU_MIGRATIONS), "cpu-migrations", "migrations" }, | 48 | { CSW(CPU_MIGRATIONS), "cpu-migrations", "migrations" }, |
| 49 | }; | 49 | }; |
| 50 | 50 | ||
| 51 | #define __PERF_COUNTER_FIELD(config, name) \ | 51 | #define __PERF_EVENT_FIELD(config, name) \ |
| 52 | ((config & PERF_COUNTER_##name##_MASK) >> PERF_COUNTER_##name##_SHIFT) | 52 | ((config & PERF_EVENT_##name##_MASK) >> PERF_EVENT_##name##_SHIFT) |
| 53 | 53 | ||
| 54 | #define PERF_COUNTER_RAW(config) __PERF_COUNTER_FIELD(config, RAW) | 54 | #define PERF_EVENT_RAW(config) __PERF_EVENT_FIELD(config, RAW) |
| 55 | #define PERF_COUNTER_CONFIG(config) __PERF_COUNTER_FIELD(config, CONFIG) | 55 | #define PERF_EVENT_CONFIG(config) __PERF_EVENT_FIELD(config, CONFIG) |
| 56 | #define PERF_COUNTER_TYPE(config) __PERF_COUNTER_FIELD(config, TYPE) | 56 | #define PERF_EVENT_TYPE(config) __PERF_EVENT_FIELD(config, TYPE) |
| 57 | #define PERF_COUNTER_ID(config) __PERF_COUNTER_FIELD(config, EVENT) | 57 | #define PERF_EVENT_ID(config) __PERF_EVENT_FIELD(config, EVENT) |
| 58 | 58 | ||
| 59 | static const char *hw_event_names[] = { | 59 | static const char *hw_event_names[] = { |
| 60 | "cycles", | 60 | "cycles", |
| @@ -352,7 +352,7 @@ static int parse_aliases(const char **str, const char *names[][MAX_ALIASES], int | |||
| 352 | } | 352 | } |
| 353 | 353 | ||
| 354 | static enum event_result | 354 | static enum event_result |
| 355 | parse_generic_hw_event(const char **str, struct perf_counter_attr *attr) | 355 | parse_generic_hw_event(const char **str, struct perf_event_attr *attr) |
| 356 | { | 356 | { |
| 357 | const char *s = *str; | 357 | const char *s = *str; |
| 358 | int cache_type = -1, cache_op = -1, cache_result = -1; | 358 | int cache_type = -1, cache_op = -1, cache_result = -1; |
| @@ -417,7 +417,7 @@ parse_single_tracepoint_event(char *sys_name, | |||
| 417 | const char *evt_name, | 417 | const char *evt_name, |
| 418 | unsigned int evt_length, | 418 | unsigned int evt_length, |
| 419 | char *flags, | 419 | char *flags, |
| 420 | struct perf_counter_attr *attr, | 420 | struct perf_event_attr *attr, |
| 421 | const char **strp) | 421 | const char **strp) |
| 422 | { | 422 | { |
| 423 | char evt_path[MAXPATHLEN]; | 423 | char evt_path[MAXPATHLEN]; |
| @@ -505,7 +505,7 @@ parse_subsystem_tracepoint_event(char *sys_name, char *flags) | |||
| 505 | 505 | ||
| 506 | 506 | ||
| 507 | static enum event_result parse_tracepoint_event(const char **strp, | 507 | static enum event_result parse_tracepoint_event(const char **strp, |
| 508 | struct perf_counter_attr *attr) | 508 | struct perf_event_attr *attr) |
| 509 | { | 509 | { |
| 510 | const char *evt_name; | 510 | const char *evt_name; |
| 511 | char *flags; | 511 | char *flags; |
| @@ -563,7 +563,7 @@ static int check_events(const char *str, unsigned int i) | |||
| 563 | } | 563 | } |
| 564 | 564 | ||
| 565 | static enum event_result | 565 | static enum event_result |
| 566 | parse_symbolic_event(const char **strp, struct perf_counter_attr *attr) | 566 | parse_symbolic_event(const char **strp, struct perf_event_attr *attr) |
| 567 | { | 567 | { |
| 568 | const char *str = *strp; | 568 | const char *str = *strp; |
| 569 | unsigned int i; | 569 | unsigned int i; |
| @@ -582,7 +582,7 @@ parse_symbolic_event(const char **strp, struct perf_counter_attr *attr) | |||
| 582 | } | 582 | } |
| 583 | 583 | ||
| 584 | static enum event_result | 584 | static enum event_result |
| 585 | parse_raw_event(const char **strp, struct perf_counter_attr *attr) | 585 | parse_raw_event(const char **strp, struct perf_event_attr *attr) |
| 586 | { | 586 | { |
| 587 | const char *str = *strp; | 587 | const char *str = *strp; |
| 588 | u64 config; | 588 | u64 config; |
| @@ -601,7 +601,7 @@ parse_raw_event(const char **strp, struct perf_counter_attr *attr) | |||
| 601 | } | 601 | } |
| 602 | 602 | ||
| 603 | static enum event_result | 603 | static enum event_result |
| 604 | parse_numeric_event(const char **strp, struct perf_counter_attr *attr) | 604 | parse_numeric_event(const char **strp, struct perf_event_attr *attr) |
| 605 | { | 605 | { |
| 606 | const char *str = *strp; | 606 | const char *str = *strp; |
| 607 | char *endp; | 607 | char *endp; |
| @@ -623,7 +623,7 @@ parse_numeric_event(const char **strp, struct perf_counter_attr *attr) | |||
| 623 | } | 623 | } |
| 624 | 624 | ||
| 625 | static enum event_result | 625 | static enum event_result |
| 626 | parse_event_modifier(const char **strp, struct perf_counter_attr *attr) | 626 | parse_event_modifier(const char **strp, struct perf_event_attr *attr) |
| 627 | { | 627 | { |
| 628 | const char *str = *strp; | 628 | const char *str = *strp; |
| 629 | int eu = 1, ek = 1, eh = 1; | 629 | int eu = 1, ek = 1, eh = 1; |
| @@ -656,7 +656,7 @@ parse_event_modifier(const char **strp, struct perf_counter_attr *attr) | |||
| 656 | * Symbolic names are (almost) exactly matched. | 656 | * Symbolic names are (almost) exactly matched. |
| 657 | */ | 657 | */ |
| 658 | static enum event_result | 658 | static enum event_result |
| 659 | parse_event_symbols(const char **str, struct perf_counter_attr *attr) | 659 | parse_event_symbols(const char **str, struct perf_event_attr *attr) |
| 660 | { | 660 | { |
| 661 | enum event_result ret; | 661 | enum event_result ret; |
| 662 | 662 | ||
| @@ -711,7 +711,7 @@ static void store_event_type(const char *orgname) | |||
| 711 | 711 | ||
| 712 | int parse_events(const struct option *opt __used, const char *str, int unset __used) | 712 | int parse_events(const struct option *opt __used, const char *str, int unset __used) |
| 713 | { | 713 | { |
| 714 | struct perf_counter_attr attr; | 714 | struct perf_event_attr attr; |
| 715 | enum event_result ret; | 715 | enum event_result ret; |
| 716 | 716 | ||
| 717 | if (strchr(str, ':')) | 717 | if (strchr(str, ':')) |
diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h index 60704c15961f..30c608112845 100644 --- a/tools/perf/util/parse-events.h +++ b/tools/perf/util/parse-events.h | |||
| @@ -16,7 +16,7 @@ extern struct tracepoint_path *tracepoint_id_to_path(u64 config); | |||
| 16 | 16 | ||
| 17 | extern int nr_counters; | 17 | extern int nr_counters; |
| 18 | 18 | ||
| 19 | extern struct perf_counter_attr attrs[MAX_COUNTERS]; | 19 | extern struct perf_event_attr attrs[MAX_COUNTERS]; |
| 20 | 20 | ||
| 21 | extern const char *event_name(int ctr); | 21 | extern const char *event_name(int ctr); |
| 22 | extern const char *__event_name(int type, u64 config); | 22 | extern const char *__event_name(int type, u64 config); |
diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c index 1fd824c1f1c4..af4b0573b37f 100644 --- a/tools/perf/util/trace-event-info.c +++ b/tools/perf/util/trace-event-info.c | |||
| @@ -480,12 +480,12 @@ out: | |||
| 480 | } | 480 | } |
| 481 | 481 | ||
| 482 | static struct tracepoint_path * | 482 | static struct tracepoint_path * |
| 483 | get_tracepoints_path(struct perf_counter_attr *pattrs, int nb_counters) | 483 | get_tracepoints_path(struct perf_event_attr *pattrs, int nb_events) |
| 484 | { | 484 | { |
| 485 | struct tracepoint_path path, *ppath = &path; | 485 | struct tracepoint_path path, *ppath = &path; |
| 486 | int i; | 486 | int i; |
| 487 | 487 | ||
| 488 | for (i = 0; i < nb_counters; i++) { | 488 | for (i = 0; i < nb_events; i++) { |
| 489 | if (pattrs[i].type != PERF_TYPE_TRACEPOINT) | 489 | if (pattrs[i].type != PERF_TYPE_TRACEPOINT) |
| 490 | continue; | 490 | continue; |
| 491 | ppath->next = tracepoint_id_to_path(pattrs[i].config); | 491 | ppath->next = tracepoint_id_to_path(pattrs[i].config); |
| @@ -496,7 +496,7 @@ get_tracepoints_path(struct perf_counter_attr *pattrs, int nb_counters) | |||
| 496 | 496 | ||
| 497 | return path.next; | 497 | return path.next; |
| 498 | } | 498 | } |
| 499 | void read_tracing_data(struct perf_counter_attr *pattrs, int nb_counters) | 499 | void read_tracing_data(struct perf_event_attr *pattrs, int nb_events) |
| 500 | { | 500 | { |
| 501 | char buf[BUFSIZ]; | 501 | char buf[BUFSIZ]; |
| 502 | struct tracepoint_path *tps; | 502 | struct tracepoint_path *tps; |
| @@ -530,7 +530,7 @@ void read_tracing_data(struct perf_counter_attr *pattrs, int nb_counters) | |||
| 530 | page_size = getpagesize(); | 530 | page_size = getpagesize(); |
| 531 | write_or_die(&page_size, 4); | 531 | write_or_die(&page_size, 4); |
| 532 | 532 | ||
| 533 | tps = get_tracepoints_path(pattrs, nb_counters); | 533 | tps = get_tracepoints_path(pattrs, nb_events); |
| 534 | 534 | ||
| 535 | read_header_files(); | 535 | read_header_files(); |
| 536 | read_ftrace_files(tps); | 536 | read_ftrace_files(tps); |
diff --git a/tools/perf/util/trace-event.h b/tools/perf/util/trace-event.h index d35ebf1e29ff..693f815c9429 100644 --- a/tools/perf/util/trace-event.h +++ b/tools/perf/util/trace-event.h | |||
| @@ -240,6 +240,6 @@ unsigned long long | |||
| 240 | raw_field_value(struct event *event, const char *name, void *data); | 240 | raw_field_value(struct event *event, const char *name, void *data); |
| 241 | void *raw_field_ptr(struct event *event, const char *name, void *data); | 241 | void *raw_field_ptr(struct event *event, const char *name, void *data); |
| 242 | 242 | ||
| 243 | void read_tracing_data(struct perf_counter_attr *pattrs, int nb_counters); | 243 | void read_tracing_data(struct perf_event_attr *pattrs, int nb_events); |
| 244 | 244 | ||
| 245 | #endif /* _TRACE_EVENTS_H */ | 245 | #endif /* _TRACE_EVENTS_H */ |
