On Thu, 2025-11-13 at 19:41 +0800, kernel test robot wrote:
> tree:  
> https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace latency/for-
> next
> head:   69d8895cb9a9f6450374577af8584c2e21cb5a9f
> commit: 4f739ed19d222de33b19ca639a34523fbbec20d0 [3/5] rv: Pass va_list to
> reactors
> config: arc-randconfig-r071-20251113
> (https://download.01.org/0day-ci/archive/20251113/202511131948.vxi5mdjU-lkp@in
> tel.com/config)
> compiler: arc-linux-gcc (GCC) 8.5.0
> reproduce (this is a W=1 build):
> (https://download.01.org/0day-ci/archive/20251113/202511131948.vxi5mdjU-lkp@in
> tel.com/reproduce)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version
> of
> the same patch/commit), kindly add following tags
> > Reported-by: kernel test robot <[email protected]>
> > Closes:
> > https://lore.kernel.org/oe-kbuild-all/[email protected]/
> 
> All errors (new ones prefixed by >>):
> 
> > > kernel/trace/rv/monitors/sleep/sleep.c:219:26: error: static declaration
> > > of 'rv_sleep' follows non-static declaration
>     static struct rv_monitor rv_sleep = {
>                              ^~~~~~~~

My bad I didn't test with !CONFIG_RV_REACTORS, is there a reason why we'd want
this non-static?

#ifdef CONFIG_RV_REACTORS
static struct rv_monitor RV_MONITOR_NAME;
#else
extern struct rv_monitor RV_MONITOR_NAME;
#endif

ltl_monitor is included only by the files defining the rv_MONITOR_NAME, that's
definitely static as far as I see it.

I'd go with a Fix like this:

diff --git a/include/rv/ltl_monitor.h b/include/rv/ltl_monitor.h
index 00c42b36f961..eff60cd61106 100644
--- a/include/rv/ltl_monitor.h
+++ b/include/rv/ltl_monitor.h
@@ -17,12 +17,7 @@
 #endif
 
 #define RV_MONITOR_NAME CONCATENATE(rv_, MONITOR_NAME)
-
-#ifdef CONFIG_RV_REACTORS
 static struct rv_monitor RV_MONITOR_NAME;
-#else
-extern struct rv_monitor RV_MONITOR_NAME;
-#endif
 
 static int ltl_monitor_slot = RV_PER_TASK_MONITOR_INIT;
 
Any thought?

Thanks,
Gabriele

>    In file included from include/linux/cleanup.h:7,
>                     from include/linux/interrupt.h:8,
>                     from include/linux/trace_recursion.h:5,
>                     from include/linux/ftrace.h:10,
>                     from kernel/trace/rv/monitors/sleep/sleep.c:2:
>    include/rv/ltl_monitor.h:19:37: note: previous declaration of 'rv_sleep'
> was here
>     #define RV_MONITOR_NAME CONCATENATE(rv_, MONITOR_NAME)
>                                         ^~~
>    include/linux/args.h:25:24: note: in definition of macro '__CONCAT'
>     #define __CONCAT(a, b) a ## b
>                            ^
>    include/rv/ltl_monitor.h:19:25: note: in expansion of macro 'CONCATENATE'
>     #define RV_MONITOR_NAME CONCATENATE(rv_, MONITOR_NAME)
>                             ^~~~~~~~~~~
>    include/rv/ltl_monitor.h:24:26: note: in expansion of macro
> 'RV_MONITOR_NAME'
>     extern struct rv_monitor RV_MONITOR_NAME;
>                              ^~~~~~~~~~~~~~~
> 
> 
> vim +/rv_sleep +219 kernel/trace/rv/monitors/sleep/sleep.c
> 
> f74f8bb246cf22 Nam Cao 2025-07-09  218  
> f74f8bb246cf22 Nam Cao 2025-07-09 @219  static struct rv_monitor rv_sleep = {
> f74f8bb246cf22 Nam Cao 2025-07-09  220        .name = "sleep",
> f74f8bb246cf22 Nam Cao 2025-07-09  221        .description = "Monitor that
> RT tasks do not undesirably sleep",
> f74f8bb246cf22 Nam Cao 2025-07-09  222        .enable = enable_sleep,
> f74f8bb246cf22 Nam Cao 2025-07-09  223        .disable = disable_sleep,
> f74f8bb246cf22 Nam Cao 2025-07-09  224  };
> f74f8bb246cf22 Nam Cao 2025-07-09  225  
> 
> :::::: The code at line 219 was first introduced by commit
> :::::: f74f8bb246cf22f27752977da62079cb615f55b2 rv: Add rtapp_sleep monitor
> 
> :::::: TO: Nam Cao <[email protected]>
> :::::: CC: Steven Rostedt (Google) <[email protected]>


Reply via email to