On Fri, Oct 02, 2026 at 02:36:18PM +0800, KunWu Chan wrote:
> On Wed, Sep 30, 2026 at 5:08 AM 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")
> 
> Sure. Thanks, Paul.

Thank you, and I will apply them on my next rebase.

                                                        Thanx, Paul

> Kunwu
> 
> > > 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
> > > >
> > >

Reply via email to