[PATCH v2] ARM: support syscall tracing
From: Will Deacon <hidden>
Date: 2012-08-15 17:27:31
On Wed, Aug 15, 2012 at 05:58:44PM +0100, Wade Farnsworth wrote:
We need to set current_thread_info()->syscall, since it's used in the
call to syscall_get_nr() in perf_syscall_{enter,exit}.Damn. I think that also means we have a bug, given that the SYSCALL_TRACE code can set this to -1, which gets used as an index into a bitmap by the looks of it. Considering that we have to pass the syscall number to trace_sys_enter anyway, it also seems broken.
What about moving the setting of ->syscall to
syscall_trace_{enter,exit}? That would preserve ptrace_syscall_trace()
for the TIF_SYSCALL_TRACE case only, but ensure that the field is set
the TRACEPOINT case as well. Thoughts?I'd be tempted to set the thing unconditionally before checking the thread flag at the top of ptrace_syscall_trace. This hangs off the slowpath anyway and it makes everything a lot more readable. Will