[PATCH 00/13] perf: Replace strerror with strerror_r for thread-safety

From: Masami Hiramatsu
Date: Wed Aug 13 2014 - 22:22:37 EST


Hi,

(sorry, ignore the previous series, this is complete one)

Here is a series to get rid of thread-unsafe strerror() from
perf tools. Of course, there maybe other thread-unsafe functions,
so this goes just one step forward. :)

This introduces STRERR_BUFSIZE(=128) macro for allocating local
buffer, but some strerror_r()s don't use that. If there are
already a local buffer on the stack, and if it is bigger than
STRERR_BUFSIZE, I chose it for strerror_r()'s buffer.

By the way, while doing this cleanup, I've found some confusions
on the code. Currently perf has 3 ways to output messages except
for standard (f)printf, pr_XXX, ui__XXX and warning/error functions.
Is there any differences among those APIs? What is the expected
use cases for them?
For example, a pure printf is in kvm_live_open_events@xxxxxxxxxxxxx
but it seems to be ui__error, because the error output next to it
uses that. However, other parts use pr_XXX too. It seems inconsistent.

Thank you,

---

Masami Hiramatsu (13):
perf probe: Don't use strerror if strlist__add failed
perf: Use strerror_r instead of strerror
perf probe: Make error messages thread-safe
perf/util: Replace strerror with strerror_r for thread-safety
perf top: Use strerror_r instead of strerror
perf trace: Use strerror_r instead of strerror
perf record: Use strerror_r instead of strerror
perf test: Use strerror_r instead of strerror
perf sched: Use strerror_r instead of strerror
perf buildid-cache: Use strerror_r instead of strerror
perf kvm: Use strerror_r instead of strerror
perf help: Use strerror_r instead of strerror
perf stat: Use strerror_r instead of strerror


tools/perf/builtin-buildid-cache.c | 7 +++---
tools/perf/builtin-help.c | 20 ++++++++++++++---
tools/perf/builtin-kvm.c | 7 ++++--
tools/perf/builtin-probe.c | 5 +++-
tools/perf/builtin-record.c | 7 +++---
tools/perf/builtin-sched.c | 4 +++
tools/perf/builtin-stat.c | 2 +-
tools/perf/builtin-top.c | 2 +-
tools/perf/builtin-trace.c | 6 +++--
tools/perf/perf.c | 10 ++++++---
tools/perf/tests/builtin-test.c | 4 +++
tools/perf/tests/mmap-basic.c | 7 +++---
tools/perf/tests/open-syscall-all-cpus.c | 5 +++-
tools/perf/tests/open-syscall-tp-fields.c | 7 ++++--
tools/perf/tests/open-syscall.c | 3 ++-
tools/perf/tests/perf-record.c | 13 ++++++++---
tools/perf/tests/rdpmc.c | 6 +++--
tools/perf/tests/sw-clock.c | 6 +++--
tools/perf/tests/task-exit.c | 6 +++--
tools/perf/util/cloexec.c | 6 +++--
tools/perf/util/data.c | 8 +++++--
tools/perf/util/debug.h | 3 +++
tools/perf/util/dso.c | 8 +++++--
tools/perf/util/evlist.c | 2 +-
tools/perf/util/evsel.c | 7 ++++--
tools/perf/util/parse-events.c | 5 +++-
tools/perf/util/probe-event.c | 34 ++++++++++++++++-------------
tools/perf/util/probe-finder.c | 7 ++++--
tools/perf/util/run-command.c | 9 ++++++--
tools/perf/util/util.c | 5 +++-
30 files changed, 150 insertions(+), 71 deletions(-)

--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@xxxxxxxxxxx

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/