mmap-basic.c (ecd740c6f2f092b90b95fa35f757973589eaaca2) | mmap-basic.c (ba3dfff8ad2d98df0c8116faaeb281c93e161636) |
---|---|
1#include "evlist.h" 2#include "evsel.h" 3#include "thread_map.h" 4#include "cpumap.h" 5#include "tests.h" 6 7/* 8 * This test will generate random numbers of calls to some getpid syscalls, --- 17 unchanged lines hidden (view full) --- 26 const char *syscall_names[] = { "getsid", "getppid", "getpgrp", 27 "getpgid", }; 28 pid_t (*syscalls[])(void) = { (void *)getsid, getppid, getpgrp, 29 (void*)getpgid }; 30#define nsyscalls ARRAY_SIZE(syscall_names) 31 unsigned int nr_events[nsyscalls], 32 expected_nr_events[nsyscalls], i, j; 33 struct perf_evsel *evsels[nsyscalls], *evsel; | 1#include "evlist.h" 2#include "evsel.h" 3#include "thread_map.h" 4#include "cpumap.h" 5#include "tests.h" 6 7/* 8 * This test will generate random numbers of calls to some getpid syscalls, --- 17 unchanged lines hidden (view full) --- 26 const char *syscall_names[] = { "getsid", "getppid", "getpgrp", 27 "getpgid", }; 28 pid_t (*syscalls[])(void) = { (void *)getsid, getppid, getpgrp, 29 (void*)getpgid }; 30#define nsyscalls ARRAY_SIZE(syscall_names) 31 unsigned int nr_events[nsyscalls], 32 expected_nr_events[nsyscalls], i, j; 33 struct perf_evsel *evsels[nsyscalls], *evsel; |
34 char sbuf[STRERR_BUFSIZE]; |
|
34 35 threads = thread_map__new(-1, getpid(), UINT_MAX); 36 if (threads == NULL) { 37 pr_debug("thread_map__new\n"); 38 return -1; 39 } 40 41 cpus = cpu_map__new(NULL); 42 if (cpus == NULL) { 43 pr_debug("cpu_map__new\n"); 44 goto out_free_threads; 45 } 46 47 CPU_ZERO(&cpu_set); 48 CPU_SET(cpus->map[0], &cpu_set); 49 sched_setaffinity(0, sizeof(cpu_set), &cpu_set); 50 if (sched_setaffinity(0, sizeof(cpu_set), &cpu_set) < 0) { 51 pr_debug("sched_setaffinity() failed on CPU %d: %s ", | 35 36 threads = thread_map__new(-1, getpid(), UINT_MAX); 37 if (threads == NULL) { 38 pr_debug("thread_map__new\n"); 39 return -1; 40 } 41 42 cpus = cpu_map__new(NULL); 43 if (cpus == NULL) { 44 pr_debug("cpu_map__new\n"); 45 goto out_free_threads; 46 } 47 48 CPU_ZERO(&cpu_set); 49 CPU_SET(cpus->map[0], &cpu_set); 50 sched_setaffinity(0, sizeof(cpu_set), &cpu_set); 51 if (sched_setaffinity(0, sizeof(cpu_set), &cpu_set) < 0) { 52 pr_debug("sched_setaffinity() failed on CPU %d: %s ", |
52 cpus->map[0], strerror(errno)); | 53 cpus->map[0], strerror_r(errno, sbuf, sizeof(sbuf))); |
53 goto out_free_cpus; 54 } 55 56 evlist = perf_evlist__new(); 57 if (evlist == NULL) { 58 pr_debug("perf_evlist__new\n"); 59 goto out_free_cpus; 60 } --- 13 unchanged lines hidden (view full) --- 74 evsels[i]->attr.wakeup_events = 1; 75 perf_evsel__set_sample_id(evsels[i], false); 76 77 perf_evlist__add(evlist, evsels[i]); 78 79 if (perf_evsel__open(evsels[i], cpus, threads) < 0) { 80 pr_debug("failed to open counter: %s, " 81 "tweak /proc/sys/kernel/perf_event_paranoid?\n", | 54 goto out_free_cpus; 55 } 56 57 evlist = perf_evlist__new(); 58 if (evlist == NULL) { 59 pr_debug("perf_evlist__new\n"); 60 goto out_free_cpus; 61 } --- 13 unchanged lines hidden (view full) --- 75 evsels[i]->attr.wakeup_events = 1; 76 perf_evsel__set_sample_id(evsels[i], false); 77 78 perf_evlist__add(evlist, evsels[i]); 79 80 if (perf_evsel__open(evsels[i], cpus, threads) < 0) { 81 pr_debug("failed to open counter: %s, " 82 "tweak /proc/sys/kernel/perf_event_paranoid?\n", |
82 strerror(errno)); | 83 strerror_r(errno, sbuf, sizeof(sbuf))); |
83 goto out_delete_evlist; 84 } 85 86 nr_events[i] = 0; 87 expected_nr_events[i] = 1 + rand() % 127; 88 } 89 90 if (perf_evlist__mmap(evlist, 128, true) < 0) { 91 pr_debug("failed to mmap events: %d (%s)\n", errno, | 84 goto out_delete_evlist; 85 } 86 87 nr_events[i] = 0; 88 expected_nr_events[i] = 1 + rand() % 127; 89 } 90 91 if (perf_evlist__mmap(evlist, 128, true) < 0) { 92 pr_debug("failed to mmap events: %d (%s)\n", errno, |
92 strerror(errno)); | 93 strerror_r(errno, sbuf, sizeof(sbuf))); |
93 goto out_delete_evlist; 94 } 95 96 for (i = 0; i < nsyscalls; ++i) 97 for (j = 0; j < expected_nr_events[i]; ++j) { 98 int foo = syscalls[i](); 99 ++foo; 100 } --- 48 unchanged lines hidden --- | 94 goto out_delete_evlist; 95 } 96 97 for (i = 0; i < nsyscalls; ++i) 98 for (j = 0; j < expected_nr_events[i]; ++j) { 99 int foo = syscalls[i](); 100 ++foo; 101 } --- 48 unchanged lines hidden --- |