Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf test: Use strerror_r instead of strerror

Use strerror_r instead of strerror in error messages for thread-safety.

Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Naohiro Aota <naota@elisp.net>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20140814022245.3545.91394.stgit@kbuild-fedora.novalocal
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Masami Hiramatsu and committed by
Arnaldo Carvalho de Melo
ba3dfff8 35550da3

+38 -19
+3 -1
tools/perf/tests/builtin-test.c
··· 185 185 static int run_test(struct test *test) 186 186 { 187 187 int status, err = -1, child = fork(); 188 + char sbuf[STRERR_BUFSIZE]; 188 189 189 190 if (child < 0) { 190 - pr_err("failed to fork test: %s\n", strerror(errno)); 191 + pr_err("failed to fork test: %s\n", 192 + strerror_r(errno, sbuf, sizeof(sbuf))); 191 193 return -1; 192 194 } 193 195
+4 -3
tools/perf/tests/mmap-basic.c
··· 31 31 unsigned int nr_events[nsyscalls], 32 32 expected_nr_events[nsyscalls], i, j; 33 33 struct perf_evsel *evsels[nsyscalls], *evsel; 34 + char sbuf[STRERR_BUFSIZE]; 34 35 35 36 threads = thread_map__new(-1, getpid(), UINT_MAX); 36 37 if (threads == NULL) { ··· 50 49 sched_setaffinity(0, sizeof(cpu_set), &cpu_set); 51 50 if (sched_setaffinity(0, sizeof(cpu_set), &cpu_set) < 0) { 52 51 pr_debug("sched_setaffinity() failed on CPU %d: %s ", 53 - cpus->map[0], strerror(errno)); 52 + cpus->map[0], strerror_r(errno, sbuf, sizeof(sbuf))); 54 53 goto out_free_cpus; 55 54 } 56 55 ··· 80 79 if (perf_evsel__open(evsels[i], cpus, threads) < 0) { 81 80 pr_debug("failed to open counter: %s, " 82 81 "tweak /proc/sys/kernel/perf_event_paranoid?\n", 83 - strerror(errno)); 82 + strerror_r(errno, sbuf, sizeof(sbuf))); 84 83 goto out_delete_evlist; 85 84 } 86 85 ··· 90 89 91 90 if (perf_evlist__mmap(evlist, 128, true) < 0) { 92 91 pr_debug("failed to mmap events: %d (%s)\n", errno, 93 - strerror(errno)); 92 + strerror_r(errno, sbuf, sizeof(sbuf))); 94 93 goto out_delete_evlist; 95 94 } 96 95
+3 -2
tools/perf/tests/open-syscall-all-cpus.c
··· 12 12 unsigned int nr_open_calls = 111, i; 13 13 cpu_set_t cpu_set; 14 14 struct thread_map *threads = thread_map__new(-1, getpid(), UINT_MAX); 15 + char sbuf[STRERR_BUFSIZE]; 15 16 16 17 if (threads == NULL) { 17 18 pr_debug("thread_map__new\n"); ··· 36 35 if (perf_evsel__open(evsel, cpus, threads) < 0) { 37 36 pr_debug("failed to open counter: %s, " 38 37 "tweak /proc/sys/kernel/perf_event_paranoid?\n", 39 - strerror(errno)); 38 + strerror_r(errno, sbuf, sizeof(sbuf))); 40 39 goto out_evsel_delete; 41 40 } 42 41 ··· 57 56 if (sched_setaffinity(0, sizeof(cpu_set), &cpu_set) < 0) { 58 57 pr_debug("sched_setaffinity() failed on CPU %d: %s ", 59 58 cpus->map[cpu], 60 - strerror(errno)); 59 + strerror_r(errno, sbuf, sizeof(sbuf))); 61 60 goto out_close_fd; 62 61 } 63 62 for (i = 0; i < ncalls; ++i) {
+5 -2
tools/perf/tests/open-syscall-tp-fields.c
··· 22 22 struct perf_evlist *evlist = perf_evlist__new(); 23 23 struct perf_evsel *evsel; 24 24 int err = -1, i, nr_events = 0, nr_polls = 0; 25 + char sbuf[STRERR_BUFSIZE]; 25 26 26 27 if (evlist == NULL) { 27 28 pr_debug("%s: perf_evlist__new\n", __func__); ··· 49 48 50 49 err = perf_evlist__open(evlist); 51 50 if (err < 0) { 52 - pr_debug("perf_evlist__open: %s\n", strerror(errno)); 51 + pr_debug("perf_evlist__open: %s\n", 52 + strerror_r(errno, sbuf, sizeof(sbuf))); 53 53 goto out_delete_evlist; 54 54 } 55 55 56 56 err = perf_evlist__mmap(evlist, UINT_MAX, false); 57 57 if (err < 0) { 58 - pr_debug("perf_evlist__mmap: %s\n", strerror(errno)); 58 + pr_debug("perf_evlist__mmap: %s\n", 59 + strerror_r(errno, sbuf, sizeof(sbuf))); 59 60 goto out_delete_evlist; 60 61 } 61 62
+2 -1
tools/perf/tests/open-syscall.c
··· 9 9 struct perf_evsel *evsel; 10 10 unsigned int nr_open_calls = 111, i; 11 11 struct thread_map *threads = thread_map__new(-1, getpid(), UINT_MAX); 12 + char sbuf[STRERR_BUFSIZE]; 12 13 13 14 if (threads == NULL) { 14 15 pr_debug("thread_map__new\n"); ··· 25 24 if (perf_evsel__open_per_thread(evsel, threads) < 0) { 26 25 pr_debug("failed to open counter: %s, " 27 26 "tweak /proc/sys/kernel/perf_event_paranoid?\n", 28 - strerror(errno)); 27 + strerror_r(errno, sbuf, sizeof(sbuf))); 29 28 goto out_evsel_delete; 30 29 } 31 30
+9 -4
tools/perf/tests/perf-record.c
··· 59 59 int err = -1, errs = 0, i, wakeups = 0; 60 60 u32 cpu; 61 61 int total_events = 0, nr_events[PERF_RECORD_MAX] = { 0, }; 62 + char sbuf[STRERR_BUFSIZE]; 62 63 63 64 if (evlist == NULL || argv == NULL) { 64 65 pr_debug("Not enough memory to create evlist\n"); ··· 101 100 102 101 err = sched__get_first_possible_cpu(evlist->workload.pid, &cpu_mask); 103 102 if (err < 0) { 104 - pr_debug("sched__get_first_possible_cpu: %s\n", strerror(errno)); 103 + pr_debug("sched__get_first_possible_cpu: %s\n", 104 + strerror_r(errno, sbuf, sizeof(sbuf))); 105 105 goto out_delete_evlist; 106 106 } 107 107 ··· 112 110 * So that we can check perf_sample.cpu on all the samples. 113 111 */ 114 112 if (sched_setaffinity(evlist->workload.pid, cpu_mask_size, &cpu_mask) < 0) { 115 - pr_debug("sched_setaffinity: %s\n", strerror(errno)); 113 + pr_debug("sched_setaffinity: %s\n", 114 + strerror_r(errno, sbuf, sizeof(sbuf))); 116 115 goto out_delete_evlist; 117 116 } 118 117 ··· 123 120 */ 124 121 err = perf_evlist__open(evlist); 125 122 if (err < 0) { 126 - pr_debug("perf_evlist__open: %s\n", strerror(errno)); 123 + pr_debug("perf_evlist__open: %s\n", 124 + strerror_r(errno, sbuf, sizeof(sbuf))); 127 125 goto out_delete_evlist; 128 126 } 129 127 ··· 135 131 */ 136 132 err = perf_evlist__mmap(evlist, opts.mmap_pages, false); 137 133 if (err < 0) { 138 - pr_debug("perf_evlist__mmap: %s\n", strerror(errno)); 134 + pr_debug("perf_evlist__mmap: %s\n", 135 + strerror_r(errno, sbuf, sizeof(sbuf))); 139 136 goto out_delete_evlist; 140 137 } 141 138
+4 -2
tools/perf/tests/rdpmc.c
··· 100 100 }; 101 101 u64 delta_sum = 0; 102 102 struct sigaction sa; 103 + char sbuf[STRERR_BUFSIZE]; 103 104 104 105 sigfillset(&sa.sa_mask); 105 106 sa.sa_sigaction = segfault_handler; ··· 110 109 perf_event_open_cloexec_flag()); 111 110 if (fd < 0) { 112 111 pr_err("Error: sys_perf_event_open() syscall returned " 113 - "with %d (%s)\n", fd, strerror(errno)); 112 + "with %d (%s)\n", fd, 113 + strerror_r(errno, sbuf, sizeof(sbuf))); 114 114 return -1; 115 115 } 116 116 117 117 addr = mmap(NULL, page_size, PROT_READ, MAP_SHARED, fd, 0); 118 118 if (addr == (void *)(-1)) { 119 119 pr_err("Error: mmap() syscall returned with (%s)\n", 120 - strerror(errno)); 120 + strerror_r(errno, sbuf, sizeof(sbuf))); 121 121 goto out_close; 122 122 } 123 123
+4 -2
tools/perf/tests/sw-clock.c
··· 22 22 volatile int tmp = 0; 23 23 u64 total_periods = 0; 24 24 int nr_samples = 0; 25 + char sbuf[STRERR_BUFSIZE]; 25 26 union perf_event *event; 26 27 struct perf_evsel *evsel; 27 28 struct perf_evlist *evlist; ··· 63 62 64 63 err = -errno; 65 64 pr_debug("Couldn't open evlist: %s\nHint: check %s, using %" PRIu64 " in this test.\n", 66 - strerror(errno), knob, (u64)attr.sample_freq); 65 + strerror_r(errno, sbuf, sizeof(sbuf)), 66 + knob, (u64)attr.sample_freq); 67 67 goto out_delete_evlist; 68 68 } 69 69 70 70 err = perf_evlist__mmap(evlist, 128, true); 71 71 if (err < 0) { 72 72 pr_debug("failed to mmap event: %d (%s)\n", errno, 73 - strerror(errno)); 73 + strerror_r(errno, sbuf, sizeof(sbuf))); 74 74 goto out_delete_evlist; 75 75 } 76 76
+4 -2
tools/perf/tests/task-exit.c
··· 42 42 .uses_mmap = true, 43 43 }; 44 44 const char *argv[] = { "true", NULL }; 45 + char sbuf[STRERR_BUFSIZE]; 45 46 46 47 signal(SIGCHLD, sig_handler); 47 48 ··· 83 82 84 83 err = perf_evlist__open(evlist); 85 84 if (err < 0) { 86 - pr_debug("Couldn't open the evlist: %s\n", strerror(-err)); 85 + pr_debug("Couldn't open the evlist: %s\n", 86 + strerror_r(-err, sbuf, sizeof(sbuf))); 87 87 goto out_delete_evlist; 88 88 } 89 89 90 90 if (perf_evlist__mmap(evlist, 128, true) < 0) { 91 91 pr_debug("failed to mmap events: %d (%s)\n", errno, 92 - strerror(errno)); 92 + strerror_r(errno, sbuf, sizeof(sbuf))); 93 93 goto out_delete_evlist; 94 94 } 95 95