Re: [PATCH v2] rcu: Keeping rcu-related kthreads running on housekeeping CPUS

From: kernel test robot
Date: Thu Feb 09 2023 - 10:30:38 EST


Hi Zqiang,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on paulmck-rcu/dev]
[also build test WARNING on next-20230209]
[cannot apply to linus/master v6.2-rc7]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Zqiang/rcu-Keeping-rcu-related-kthreads-running-on-housekeeping-CPUS/20230209-182311
base: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
patch link: https://lore.kernel.org/r/20230209102730.974465-1-qiang1.zhang%40intel.com
patch subject: [PATCH v2] rcu: Keeping rcu-related kthreads running on housekeeping CPUS
config: m68k-allyesconfig (https://download.01.org/0day-ci/archive/20230209/202302092354.9PFOG9CE-lkp@xxxxxxxxx/config)
compiler: m68k-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/af15a3ade363b21d823918088623f8564cbd9d08
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Zqiang/rcu-Keeping-rcu-related-kthreads-running-on-housekeeping-CPUS/20230209-182311
git checkout af15a3ade363b21d823918088623f8564cbd9d08
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash kernel/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202302092354.9PFOG9CE-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

In file included from kernel/torture.c:40:
>> kernel/rcu/rcu.h:602:6: warning: no previous prototype for 'rcu_kthread_setaffinity' [-Wmissing-prototypes]
602 | void rcu_kthread_setaffinity(struct task_struct *tsk, int outgoing) { }
| ^~~~~~~~~~~~~~~~~~~~~~~
--
In file included from kernel/rcu/update.c:49:
>> kernel/rcu/rcu.h:602:6: warning: no previous prototype for 'rcu_kthread_setaffinity' [-Wmissing-prototypes]
602 | void rcu_kthread_setaffinity(struct task_struct *tsk, int outgoing) { }
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from kernel/rcu/update.c:649:
>> kernel/rcu/tasks.h:1970:6: warning: no previous prototype for 'rcu_tasks_generic_setaffinity' [-Wmissing-prototypes]
1970 | void rcu_tasks_generic_setaffinity(int cpu)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/rcu_kthread_setaffinity +602 kernel/rcu/rcu.h

588
589 #ifdef CONFIG_TINY_RCU
590 static inline bool rcu_dynticks_zero_in_eqs(int cpu, int *vp) { return false; }
591 static inline unsigned long rcu_get_gp_seq(void) { return 0; }
592 static inline unsigned long rcu_exp_batches_completed(void) { return 0; }
593 static inline unsigned long
594 srcu_batches_completed(struct srcu_struct *sp) { return 0; }
595 static inline void rcu_force_quiescent_state(void) { }
596 static inline bool rcu_check_boost_fail(unsigned long gp_state, int *cpup) { return true; }
597 static inline void show_rcu_gp_kthreads(void) { }
598 static inline int rcu_get_gp_kthreads_prio(void) { return 0; }
599 static inline void rcu_fwd_progress_check(unsigned long j) { }
600 static inline void rcu_gp_slow_register(atomic_t *rgssp) { }
601 static inline void rcu_gp_slow_unregister(atomic_t *rgssp) { }
> 602 void rcu_kthread_setaffinity(struct task_struct *tsk, int outgoing) { }
603 #else /* #ifdef CONFIG_TINY_RCU */
604 bool rcu_dynticks_zero_in_eqs(int cpu, int *vp);
605 unsigned long rcu_get_gp_seq(void);
606 unsigned long rcu_exp_batches_completed(void);
607 unsigned long srcu_batches_completed(struct srcu_struct *sp);
608 bool rcu_check_boost_fail(unsigned long gp_state, int *cpup);
609 void show_rcu_gp_kthreads(void);
610 int rcu_get_gp_kthreads_prio(void);
611 void rcu_fwd_progress_check(unsigned long j);
612 void rcu_force_quiescent_state(void);
613 void rcu_kthread_setaffinity(struct task_struct *tsk, int outgoing);
614 extern struct workqueue_struct *rcu_gp_wq;
615 #ifdef CONFIG_RCU_EXP_KTHREAD
616 extern struct kthread_worker *rcu_exp_gp_kworker;
617 extern struct kthread_worker *rcu_exp_par_gp_kworker;
618 #else /* !CONFIG_RCU_EXP_KTHREAD */
619 extern struct workqueue_struct *rcu_par_gp_wq;
620 #endif /* CONFIG_RCU_EXP_KTHREAD */
621 void rcu_gp_slow_register(atomic_t *rgssp);
622 void rcu_gp_slow_unregister(atomic_t *rgssp);
623 #endif /* #else #ifdef CONFIG_TINY_RCU */
624

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests