Reading /proc/<pid>/stack for a running task (other than current) can print
garbage because the saved stack pointer is no longer accurate and the stack
itself can be inconsistent.

Add new sched and stacktrace functions so that /proc/<pid>/stack only walks the
stack for sleeping tasks and the current task.

The new sched_task_call() function will also be useful for future live patching
code which will need to atomically examine a task's stack before patching it.

Josh Poimboeuf (3):
  sched: add sched_task_call()
  stacktrace: add save_stack_trace_tsk_safe()
  proc: fix /proc/<pid>/stack for running tasks

 fs/proc/base.c             |  2 +-
 include/linux/sched.h      |  4 ++++
 include/linux/stacktrace.h |  2 ++
 kernel/sched/core.c        | 17 +++++++++++++++++
 kernel/stacktrace.c        | 22 ++++++++++++++++++++++
 5 files changed, 46 insertions(+), 1 deletion(-)

-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to