libunwind-devel
[Top][All Lists]
Advanced

[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

Attachment: libunwind-fasttrace-x86-20111110.txt
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]