Re: [PATCH] RFC: hung task: Check specific tasks for long uninterruptible sleep state

From: Peter Zijlstra
Date: Tue Aug 22 2017 - 16:36:50 EST


On Mon, Aug 21, 2017 at 03:55:53PM +0530, Imran Khan wrote:
> khungtask by default monitors either all tasks or no tasks at all
> for long unterruptible sleeps.
> For Android like environments this arrangement is not optimal because
> on one hand it may be permissible to have some background(bg) task
> in uninterruptible sleep state for long duration while on the other
> hand it may not be permissible to have some foreground(fg) task like
> surfaceflinger in uninterruptible sleep state for long duration.

How are you getting tasks in UNINTERRUPTIBLE state for a long time to
begin with? That's not a good thing, background or not.

> So it would be good to have some arrangement so that few specified tasks
> can be monitored by khungtaskd, on a need basis.
> This change introduces a sysctl option, /proc/sys/kernel/
> hung_task_check_selected, to enable monitoring of selected tasks using
> khungtask daemon. If this sysctl option is enabled then only the tasks
> specified in /proc/hung_task_monitor_list are monitored otherwise all
> tasks are monitored, just like the default case.

That's horrible. Why not a file in /proc/$PID/ that excludes it from
things?