summaryrefslogtreecommitdiffstats
path: root/kernel/perf_event.c
diff options
context:
space:
mode:
authorTorok Edwin <edwintorok@gmail.com>2010-03-17 12:07:16 +0200
committerIngo Molnar <mingo@elte.hu>2010-04-02 19:30:03 +0200
commit257ef9d21f1b008a6c7425544b36641c4325a922 (patch)
tree4ffda980fe6a93acd24efcc04cd10e130caae4c1 /kernel/perf_event.c
parentb38b24ead33417146e051453d04bf60b8d2d7e25 (diff)
downloadop-kernel-dev-257ef9d21f1b008a6c7425544b36641c4325a922.zip
op-kernel-dev-257ef9d21f1b008a6c7425544b36641c4325a922.tar.gz
perf, x86: Fix callgraphs of 32-bit processes on 64-bit kernels
When profiling a 32-bit process on a 64-bit kernel, callgraph tracing stopped after the first function, because it has seen a garbage memory address (tried to interpret the frame pointer, and return address as a 64-bit pointer). Fix this by using a struct stack_frame with 32-bit pointers when the TIF_IA32 flag is set. Note that TIF_IA32 flag must be used, and not is_compat_task(), because the latter is only set when the 32-bit process is executing a syscall, which may not always be the case (when tracing page fault events for example). Signed-off-by: Török Edwin <edwintorok@gmail.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Acked-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Paul Mackerras <paulus@samba.org> Cc: x86@kernel.org Cc: linux-kernel@vger.kernel.org LKML-Reference: <1268820436-13145-1-git-send-email-edwintorok@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/perf_event.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud