[PATCH 0/3] perf tools: Add libdw DWARF post unwind support for ARM

Jean Pihet jean.pihet at linaro.org
Mon Mar 3 20:24:37 EST 2014


Hi,

Here are some notes about the performance improvement and the test usage.

Jiri, do you need these notes in the one of commit description?

1. Using libdw vs libunwind on ARMv7

The performance gain is (more than) significant: >800%.

I did not profile perf itself ;-p just did a timing measurement.
The benchmark has been run multiple times with different perf.data
sizes. The results are consistent across the tests runs.

Usage:
./tools/perf/perf record --call-graph dwarf --
../../libunwind/test_app/stress_bt
time ./tools/perf/perf report --stdio > /dev/null 2>&1

Platform:
Quad-core marvell XP370. perf runs on 1 cpu

Perf data size:
304MB    libunwind    libdw        improvement
real    9m31.577s    1m13.052s    782%
user    5m33.020s    1m2.910s    529%
sys        3m57.770s    0m10.090s    2356%

2. unwind test usage
perf test list gives the list of supported tests. In this case the
test #23 is dwarf unwinding:

./tools/perf/perf test 23
23: Test dwarf unwind                                      : Ok


Regards,
Jean


On 3 March 2014 10:53, Jean Pihet <jean.pihet at linaro.org> wrote:
> Adding libdw DWARF post unwind support, which is part
> of elfutils-devel/libdw-dev package from version 0.158.
>
> Also includes the test suite for dwarf unwinding, by adding the
> arch specific test code and the perf_regs_load function.
>
> Jean Pihet (3):
>   perf tests: Introduce perf_regs_load function on ARM
>   perf tests: Add dwarf unwind test on ARM
>   perf tools: Add libdw DWARF post unwind support for ARM
>
>  tools/perf/Makefile.perf                 |  2 +-
>  tools/perf/arch/arm/Makefile             |  7 ++++
>  tools/perf/arch/arm/include/perf_regs.h  |  5 +++
>  tools/perf/arch/arm/tests/dwarf-unwind.c | 59 ++++++++++++++++++++++++++++++++
>  tools/perf/arch/arm/tests/regs_load.S    | 51 +++++++++++++++++++++++++++
>  tools/perf/arch/arm/util/unwind-libdw.c  | 36 +++++++++++++++++++
>  tools/perf/tests/builtin-test.c          |  2 +-
>  tools/perf/tests/tests.h                 |  2 +-
>  8 files changed, 161 insertions(+), 3 deletions(-)
>  create mode 100644 tools/perf/arch/arm/tests/dwarf-unwind.c
>  create mode 100644 tools/perf/arch/arm/tests/regs_load.S
>  create mode 100644 tools/perf/arch/arm/util/unwind-libdw.c
>
> ---
>
> - Rebased on latest acme/perf/core git tree,
> - Tested on quad-core ARMv7 machine
>
> --
> 1.7.11.7
>



More information about the linux-arm-kernel mailing list