summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2014-03-26 18:45:37 -0400
committerCarlos O'Donell <carlos@redhat.com>2014-03-26 23:18:15 -0400
commitdf5b85da90915ce6208ad737807e3d8f2a8fce87 (patch)
tree5f9d2d8b2b64d2bc9b36dead2b4d4f89f1e8bc79 /ChangeLog
parentfbd6b5a4052316f7eb03c4617eebfaafc59dcc06 (diff)
Fix dwarf2 unwinding through futex functions.
When profiling programs with lock problems with perf record -g dwarf, libunwind can currently not backtrace through the futex and unlock functions in pthread. This is because they use out of line sections, and those are not correctly described in dwarf2 (I believe needs dwarf3 or 4). This patch first removes the out of line sections. They only save a single jump, but cause a lot of pain. Then it converts the now inline lock code to use the now standard gas .cfi_* commands. With these changes libunwind/perf can backtrace through the futex functions now. Longer term it would be likely better to just use C futex() functions on x86 like all the other architectures. This would clean the code up even more.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog13
1 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 404ef7af2b..f6d309fbee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2014-03-27 Andi Kleen <ak@linux.intel.com>
+
+ * nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_lock,
+ lll_robust_lock, lll_cond_lock, lll_timedlock, lll_robust_cond_lock,
+ lll_robust_timedlock, lll_unlock, lll_robust_unlock):
+ Remove out of line section. Use cfi intrinsics.
+ (LLL_STUB_UNWIND_INFO*): Remove.
+ * nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
+ lll_robust_lock, lll_cond_lock, lll_timedlock, lll_robust_cond_lock,
+ lll_robust_timedlock, lll_unlock, lll_robust_unlock):
+ Remove out of line section. Use cfi intrinsics.
+ (LLL_STUB_UNWIND_INFO*): Remove.
+
2014-03-27 Siddhesh Poyarekar <siddhesh@redhat.com>
[BZ #16758]