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; }; -- Steve