Re: [patch] add /proc/pid/stack to dump task's stack trace

From: Alexey Dobriyan
Date: Fri Nov 07 2008 - 12:48:54 EST


On Fri, Nov 07, 2008 at 10:29:02AM +0100, Ingo Molnar wrote:
>
> * Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> > On Fri, 7 Nov 2008 10:03:04 +0100 Ingo Molnar <mingo@xxxxxxx> wrote:
> >
> > > task running on this CPU:
> > >
> > > # cat /proc/self/stack
> > > [<ffffffff80216f79>] save_stack_trace_tsk+0x26/0x44
> > > [<ffffffff802f59a5>] proc_pid_stack+0x6e/0xd3
> > > [<ffffffff802f6da3>] proc_info_read+0x68/0xba
> > > [<ffffffff802b2f17>] vfs_read+0xa9/0xe3
> > > [<ffffffff802b301f>] sys_read+0x4c/0x73
> > > [<ffffffff8020c23b>] system_call_fastpath+0x16/0x1b
> > > [<ffffffffffffffff>] 0xffffffffffffffff
> >
> > So we provide a means by which process A can sample process B's
> > instruction pointer? Even if it's in random.c or crypto code?
> > There's a little project for someone.
>
> yes - like "echo p > /proc/sysrq-trigger" and sysrq-t. Although unlike
> sysrq-p, the IP itself isnt printed, just the stack trace - but
> there's indeed a correlation.
>
> > I guess the 0400 mode on that file will suffice...
>
> correct, 0400 is used already in the present patch:
>
> phoenix:~> cat /proc/1/stack
> cat: /proc/1/stack: Permission denied
>
> but that is _not_ enough, it should be narrowed even more, to the
> boundaries that i pointed out in my first review feedback mail, and
> which is not implemented yet:
>
> 1) only root should be allowed to do this - i.e. file needs to be
> root-owned.
>
> 2) there also needs to be a .config entry for folks to be able to
> turn it off altogether - just like folks can turn off sysrq-t
> dumping via the .config.

In the name of everything holy, don't add another config option.
It's a _tiny_ piece of code and you have select STACKTRACE via
fault injection, latencytop or lockdep before that.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/