• Chris Metcalf's avatar
    procfs: treat parked tasks as sleeping for task state · f51c0eae
    Chris Metcalf authored
    Allowing watchdog threads to be parked means that we now have the
    opportunity of actually seeing persistent parked threads in the output
    of /proc/<pid>/stat and /proc/<pid>/status.  The existing code reported
    such threads as "Running", which is kind-of true if you think of the
    case where we park them as part of taking cpus offline.  But if we allow
    parking them indefinitely, "Running" is pretty misleading, so we report
    them as "Sleeping" instead.
    
    We could simply report them with a new string, "Parked", but it feels
    like it's a bit risky for userspace to see unexpected new values; the
    output is already documented in Documentation/filesystems/proc.txt, and
    it seems like a mistake to change that lightly.
    
    The scheduler does report parked tasks with a "P" in debugging output
    from sched_show_task() or dump_cpu_task(), but that's a different API.
    Similarly, the trace_ctxwake_* routines report a "P" for parked tasks,
    but again, different API.
    
    This change seemed slightly cleaner than updating the task_state_array
    to have additional rows.  TASK_DEAD should be subsumed by the exit_state
    bits; TASK_WAKEKILL is just a modifier; and TASK_WAKING can very
    reasonably be reported as "Running" (as it is now).  Only TASK_PARKED
    shows up with unreasonable output here.
    Signed-off-by: default avatarChris Metcalf <cmetcalf@ezchip.com>
    Cc: Don Zickus <dzickus@redhat.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Ulrich Obergfell <uobergfe@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    f51c0eae
array.c 18.4 KB