[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Libunwind-devel] Port fasttrace to x86
From: |
Paul Pluzhnikov |
Subject: |
[Libunwind-devel] Port fasttrace to x86 |
Date: |
Thu, 10 Nov 2011 16:31:37 -0800 |
Greetings,
Attached patch almost entirely mechanically copies x86_64/Gtrace.c and
x86_64/Gstash_frame.c to x86.
Performance result from Gperf-trace on my machine, using recent GCC SVN
(gcc (GCC) 4.7.0 20111031 (experimental)) in 32-bit mode:
before:
unw_getcontext : cold avg= 69.758 nsec, warm avg= 68.856 nsec
unw_init_local : cold avg= 149.264 nsec, warm avg= 58.820 nsec
no cache : unw_step : 1st= 1132.628 min= 579.818 avg= 614.949 nsec
global cache : unw_step : 1st= 619.381 min= 579.819 avg= 600.354 nsec
per-thread cache: unw_step : 1st= 638.485 min= 579.818 avg= 598.752 nsec
after:
unw_getcontext : cold avg= 69.141 nsec, warm avg= 28.610 nsec
unw_init_local : cold avg= 159.740 nsec, warm avg= 28.610 nsec
no cache : unw_step : 1st= 2840.780 min= 8.997 avg= 18.182 nsec
global cache : unw_step : 1st= 47.234 min= 8.997 avg= 14.752 nsec
per-thread cache: unw_step : 1st= 47.234 min= 8.997 avg= 14.698 nsec
I observe two new failures: Ltest-nocalloc (expected) and run-ptrace-misc.
The second failure I can't quite explain: AFAICT the fast trace is not
used by that test.
Thanks,
P.S. I did not apply this fix:
http://lists.nongnu.org/archive/html/libunwind-devel/2011-11/msg00018.html
as I didn't get any comments on it yet.
If it is to be applied, it would need to go into both places (I think).
--
Paul Pluzhnikov
libunwind-fasttrace-x86-20111110.txt
Description: Text document
- [Libunwind-devel] Port fasttrace to x86,
Paul Pluzhnikov <=