David Howells <[EMAIL PROTECTED]> wrote:
>
> Christoph Hellwig <[EMAIL PROTECTED]> wrote:
>
> > > The sys_ptrace boilerplate code (everything outside the big switch
> > > statement for the arch-specific requests) is shared by most
> > > architectures. This patch moves it to kernel/ptrace.c and leaves the
> > > arch-specific code as arch_ptrace.
>
> Looks okay to me. I do have a concern about all the extra indirections we're
> acquiring by this mad rush to centralise everything. It's going to slow things
> down and consume more stack space. Is there any way we can:
>
> (1) Make a sys_ptrace() *jump* to arch_ptrace() instead of calling it, thus
> obviating the extra return step.
>
> (2) Drop the use of lock_kernel().
If we can remove the lock_kernel() and move the final put_task_struct()
into each arch_ptrace() then we can end sys_ptrace() with
return arch_ptrace(....);
and with luck, gcc will convert it into a tailcall for us.
It's probably not the first place to start doing such optimisation tho.