On Wed, 19 Feb 2025 18:58:10 -0500 Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > On Thu, 20 Feb 2025 08:09:08 +0900 > Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> wrote: > > > So something like this? > > > > unsigned int block_flags; > > union { > > struct mutex *mutex; > > struct rwsem +rwsem; > > struct rtmutex *rtmutex; > > } blocked_on; > > > > enum { > > BLOCKED_ON_MUTEX; > > BLOCKED_ON_RWSEM; > > BLOCKED_ON_RTMUTEX; > > BLOCKED_ON_IO; > > } block_reason; > > > > For the safety, we may anyway lock the task anyway, but that is the > > same as stacktrace. > > Why not make it into a single entity? > > struct blocked_on { > unsigned int flags; > union { > struct mutex *mutex; > struct rwsem *rwsem; > struct rtmutex *rtmutex; > } blocked_on; > }; Yes, and we also merge current mutex_waiter too. Thank you, > > -- Steve > -- Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>