diff options
author | Andi Kleen <ak@suse.de> | 2006-09-26 04:52:28 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 04:52:28 -0400 |
commit | 0cb91a2293648507886563ccb91979cfc94d6a4b (patch) | |
tree | f2a994f8b874e3c81c5519d445a0c5fa5522e4b5 /include/asm-i386 | |
parent | c16b63e09d9d03158e0a92e961234e94c4862620 (diff) |
[PATCH] i386: Account spinlocks to the caller during profiling for !FP kernels
This ports the algorithm from x86-64 (with improvements) to i386.
Previously this only worked for frame pointer enabled kernels.
But spinlocks have a very simple stack frame that can be manually
analyzed. Do this.
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'include/asm-i386')
-rw-r--r-- | include/asm-i386/ptrace.h | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/include/asm-i386/ptrace.h b/include/asm-i386/ptrace.h index f324c53b6f9a..30a442ec2059 100644 --- a/include/asm-i386/ptrace.h +++ b/include/asm-i386/ptrace.h | |||
@@ -80,11 +80,7 @@ static inline int user_mode_vm(struct pt_regs *regs) | |||
80 | return ((regs->xcs & 3) | (regs->eflags & VM_MASK)) != 0; | 80 | return ((regs->xcs & 3) | (regs->eflags & VM_MASK)) != 0; |
81 | } | 81 | } |
82 | #define instruction_pointer(regs) ((regs)->eip) | 82 | #define instruction_pointer(regs) ((regs)->eip) |
83 | #if defined(CONFIG_SMP) && defined(CONFIG_FRAME_POINTER) | ||
84 | extern unsigned long profile_pc(struct pt_regs *regs); | 83 | extern unsigned long profile_pc(struct pt_regs *regs); |
85 | #else | ||
86 | #define profile_pc(regs) instruction_pointer(regs) | ||
87 | #endif | ||
88 | #endif /* __KERNEL__ */ | 84 | #endif /* __KERNEL__ */ |
89 | 85 | ||
90 | #endif | 86 | #endif |