diff options
| author | Jan Beulich <jbeulich@novell.com> | 2006-10-21 12:37:01 -0400 |
|---|---|---|
| committer | Andi Kleen <andi@basil.nowhere.org> | 2006-10-21 12:37:01 -0400 |
| commit | 690a973f48b6ba2954465992c08e65059c8374fe (patch) | |
| tree | b30a59496628592233944b3f4340cdfdf9d3d5de /include/linux | |
| parent | cdfce1f5714fec7b24715f569b2fee1607350a6d (diff) | |
[PATCH] x86-64: Speed up dwarf2 unwinder
This changes the dwarf2 unwinder to do a binary search for CIEs
instead of a linear work. The linker is unfortunately not
able to build a proper lookup table at link time, instead it creates
one at runtime as soon as the bootmem allocator is usable (so you'll continue
using the linear lookup for the first [hopefully] few calls).
The code should be ready to utilize a build-time created table once
a fixed linker becomes available.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/unwind.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/unwind.h b/include/linux/unwind.h index 73e1751d03dd..749928c161fb 100644 --- a/include/linux/unwind.h +++ b/include/linux/unwind.h | |||
| @@ -26,6 +26,7 @@ struct module; | |||
| 26 | * Initialize unwind support. | 26 | * Initialize unwind support. |
| 27 | */ | 27 | */ |
| 28 | extern void unwind_init(void); | 28 | extern void unwind_init(void); |
| 29 | extern void unwind_setup(void); | ||
| 29 | 30 | ||
| 30 | #ifdef CONFIG_MODULES | 31 | #ifdef CONFIG_MODULES |
| 31 | 32 | ||
| @@ -73,6 +74,7 @@ extern int unwind_to_user(struct unwind_frame_info *); | |||
| 73 | struct unwind_frame_info {}; | 74 | struct unwind_frame_info {}; |
| 74 | 75 | ||
| 75 | static inline void unwind_init(void) {} | 76 | static inline void unwind_init(void) {} |
| 77 | static inline void unwind_setup(void) {} | ||
| 76 | 78 | ||
| 77 | #ifdef CONFIG_MODULES | 79 | #ifdef CONFIG_MODULES |
| 78 | 80 | ||
