|
@@ -4474,6 +4474,7 @@ static const char stat_nam[] = TASK_STATE_TO_CHAR_STR;
|
|
void sched_show_task(struct task_struct *p)
|
|
void sched_show_task(struct task_struct *p)
|
|
{
|
|
{
|
|
unsigned long free = 0;
|
|
unsigned long free = 0;
|
|
|
|
+ int ppid;
|
|
unsigned state;
|
|
unsigned state;
|
|
|
|
|
|
state = p->state ? __ffs(p->state) + 1 : 0;
|
|
state = p->state ? __ffs(p->state) + 1 : 0;
|
|
@@ -4493,8 +4494,11 @@ void sched_show_task(struct task_struct *p)
|
|
#ifdef CONFIG_DEBUG_STACK_USAGE
|
|
#ifdef CONFIG_DEBUG_STACK_USAGE
|
|
free = stack_not_used(p);
|
|
free = stack_not_used(p);
|
|
#endif
|
|
#endif
|
|
|
|
+ rcu_read_lock();
|
|
|
|
+ ppid = task_pid_nr(rcu_dereference(p->real_parent));
|
|
|
|
+ rcu_read_unlock();
|
|
printk(KERN_CONT "%5lu %5d %6d 0x%08lx\n", free,
|
|
printk(KERN_CONT "%5lu %5d %6d 0x%08lx\n", free,
|
|
- task_pid_nr(p), task_pid_nr(rcu_dereference(p->real_parent)),
|
|
|
|
|
|
+ task_pid_nr(p), ppid,
|
|
(unsigned long)task_thread_info(p)->flags);
|
|
(unsigned long)task_thread_info(p)->flags);
|
|
|
|
|
|
show_stack(p, NULL);
|
|
show_stack(p, NULL);
|