[PATCH v3 3/6] powerpc/64s: Blacklist system_call() and system_call_common() from kprobes
Michael Ellerman
mpe at ellerman.id.au
Thu Jun 22 21:07:46 AEST 2017
Nicholas Piggin <npiggin at gmail.com> writes:
> On Thu, 22 Jun 2017 00:08:39 +0530
> "Naveen N. Rao" <naveen.n.rao at linux.vnet.ibm.com> wrote:
>
>> Convert some of the symbols into private symbols and blacklist
>> system_call_common() and system_call() from kprobes. We can't take a
>> trap at parts of these functions as either MSR_RI is unset or the kernel
>> stack pointer is not yet setup.
>>
>> Reviewed-by: Masami Hiramatsu <mhiramat at kernel.org>
>> Signed-off-by: Naveen N. Rao <naveen.n.rao at linux.vnet.ibm.com>
>
> I don't have a problem with this bunch of system call labels
> going private. They've never added much for me in profiles.
>
> Reviewed-by: Nicholas Piggin <npiggin at gmail.com>
>
> Semi-related question, why is system_call: where it is?
Ancient history.
We used to have:
bne syscall_dotrace
syscall_dotrace_cont:
cmpldi 0,r0,NR_syscalls
bge- syscall_enosys
system_call: /* label this so stack traces look sane */
So it was there to hide syscall_dotrace_cont from back traces.
But we made syscall_dotrace_cont local in 2012 and then removed it
entirely in 2015.
> Should we move it up to right after the mtmsrd / wrteei instruction?
> (obviously for another patch). It's pretty common to get PMU
> interrupts coming in right after mtmsr and this makes profiles split
> the syscall into two which is annoying.
Move it wherever makes sense and gives good back traces.
cheers
More information about the Linuxppc-dev
mailing list