On Wed, Sep 30, 2026 at 07:36:20PM +0100, Bradley Morgan wrote:
> On 29 September 2026 22:08:49 BST, "Paul E. McKenney" <[email protected]>
> wrote:
> >On Mon, Sep 28, 2026 at 10:54:13AM +0800, KunWu Chan wrote:
> >> Thanks, Arnd.
> >>
> >> Tested on top of 1eccf02fb8d5 with CONFIG_PREEMPT_RCU=y:
> >>
> >> CONFIG_RT_MUTEXES=y: build passes
> >> CONFIG_RT_MUTEXES=n: fails without this patch, passes with it
> >>
> >> The failure is in tree_stall.h, where rt_mutex_owner() is used
> >> before tree_plugin.h includes rtmutex_common.h. This matches the
> >> reported failure, and the added include fixes it.
> >>
> >> Reviewed-by: Kunwu Chan <[email protected]>
> >> Tested-by: Kunwu Chan <[email protected]>
> >
> >Bradley and Kunwu, are you OK with my applying your tags to the commit
> >that I am merging this into?
> >
> >1eccf02fb8d5 ("rcu: Add running and boosted indications to RCU task stall
> >dump")
>
> I'm ok with it
Thank you, queued up for my next rebase.
Thanx, Paul
> >> Thanks,
> >> Kunwu
> >>
> >> On Fri, Sep 25, 2026 at 9:39 PM Arnd Bergmann <[email protected]> wrote:
> >> >
> >> > From: Arnd Bergmann <[email protected]>
> >> >
> >> > The added call to rt_mutex_owner() makes this fail to build in
> >> > some configurations:
> >> >
> >> > In file included from kernel/rcu/tree.c:5121:
> >> > kernel/rcu/tree_stall.h:333:8: error: call to undeclared function
> >'rt_mutex_owner'; ISO C99 and later do not support implicit function
> >declarations [-Wimplicit-function-declaration]
> >> > 333 | if
> >(rt_mutex_owner(&rnp->boost_mtx.rtmutex) == t)
> >> > | ^
> >> > kernel/rcu/tree_stall.h:333:48: error: comparison between pointer and
> >integer ('int' and 'struct task_struct *')
> >[-Werror,-Wpointer-integer-compare]
> >> > 333 | if
> >(rt_mutex_owner(&rnp->boost_mtx.rtmutex) == t)
> >> > |
> >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
> >> > In file included from kernel/rcu/tree.c:5124:
> >> > In file included from kernel/rcu/tree_plugin.h:14:
> >> > kernel/rcu/../locking/rtmutex_common.h:231:35: error: conflicting
> >types for 'rt_mutex_owner'
> >> > 231 | static inline struct task_struct *rt_mutex_owner(struct
> >rt_mutex_base *lock)
> >> > | ^
> >> > kernel/rcu/tree_stall.h:333:8: note: previous implicit declaration is
> >here
> >> > 333 | if
> >(rt_mutex_owner(&rnp->boost_mtx.rtmutex) == t)
> >> > | ^
> >> >
> >> > There are already a couple of inclusions of
> >"../locking/rtmutex_common.h",
> >> > so assume this is safe to do here.
> >> >
> >> > Fixes: 1eccf02fb8d5 ("rcu: Add running and boosted indications to RCU
> >task stall dump")
> >> > Signed-off-by: Arnd Bergmann <[email protected]>
> >> > ---
> >> > I wonder if it would be better to either move the rt_mutex_owner()
> >> > definition into a global header like include/linux/rtmutex.h, or to
> >> > move the code out of tree_stall.h into a .c file, as this feels like a
> >> > layering violation.
> >> > ---
> >> > kernel/rcu/tree_stall.h | 1 +
> >> > 1 file changed, 1 insertion(+)
> >> >
> >> > diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h
> >> > index 5dded1e89197..803a56af3259 100644
> >> > --- a/kernel/rcu/tree_stall.h
> >> > +++ b/kernel/rcu/tree_stall.h
> >> > @@ -12,6 +12,7 @@
> >> > #include <linux/rcu_notifier.h>
> >> > #include <linux/smp.h>
> >> > #include <linux/rtmutex.h>
> >> > +#include "../locking/rtmutex_common.h"
> >> >
> >> >
> >//////////////////////////////////////////////////////////////////////////////
> >> > //
> >> > --
> >> > 2.53.0
> >> >
> >>
> >
> >
>
> --- Thanks!
> "I'm not a very positive person" - Linus torvalds