Re: [PATCH 1/2] hung_task: Show the blocker task if the task is hung on mutex

From: Steven Rostedt
Date: Wed Feb 19 2025 - 21:24:20 EST


On Thu, 20 Feb 2025 11:07:07 +0900
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> wrote:

> On Wed, 19 Feb 2025 18:55:31 -0500
> Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> > On Thu, 20 Feb 2025 07:56:39 +0900
> > Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> wrote:
> >
> > > > >> this field, we don't need to take lock, though taking the wait_lock may
> > > > >> still be needed to examine other information inside the mutex.
> > >
> > > Do we need to take it just for accessing owner, which is in an atomic?
> >
> > Updating the task_struct would be in the same location as the blocked_on is
> > anyway. I would make it into a wrapper function that is a nop when disabled.
>
> Should we make it depends on DEBUG_MUTEXES too? I think no. We can introduce
> a different kconfig and wrapper function which calls debug_mutex_*().

No it should only depend on HUNG_TASKS.

>
> >
> > >
> > > > > But perhaps if we add a new config option for this feature, we could just
> > > > > add the lock that a task is blocked on before it goes to sleep and
> > > > > reference that instead. That would be easier than trying to play games
> > > > > getting the lock owner from the blocked_on field.
> > > >
> > > > Yes, it could be a new config option. This will be a useful feature that
> > > > I believe most distros will turn it on. Or we may just include that in
> > > > the core code without any option.
> > >
> > > Do we need another option? or just extend DETECT_HUNG_TASK?
> >
> > DETECT_HUNG_TASK is just that, for detecting hung tasks. This adds more
> > information to that, which increases the size of the task_struct not to
> > mention adds code in the mutex/rwsem handlers.
> >
> > I would definitely make it a separate config that may depend on
> > DETECT_HUNG_TASK.
>
> OK, what about CONFIG_TASK_BLOCKER?

I'm fine with whatever color you would like the bikeshed to be ;-)

-- Steve