[ammarfaizi2-block:paulmck/linux-rcu/dev 82/84] kernel/rcu/tree.c:2678:17: error: implicit declaration of function 'rcu_tasks_classic_qs'

From: kernel test robot
Date: Tue Mar 08 2022 - 08:16:32 EST


tree: https://github.com/ammarfaizi2/linux-block paulmck/linux-rcu/dev
head: fb8d1afe45bd6fcb50dff8bac4636725358fde94
commit: c8c42c80febd4e6d346f7f62958300eb8205aa31 [82/84] rcu-tasks: Make Tasks RCU account for userspace execution
config: arm-oxnas_v6_defconfig (https://download.01.org/0day-ci/archive/20220308/202203082147.h7DGjo3z-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.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/ammarfaizi2/linux-block/commit/c8c42c80febd4e6d346f7f62958300eb8205aa31
git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
git fetch --no-tags ammarfaizi2-block paulmck/linux-rcu/dev
git checkout c8c42c80febd4e6d346f7f62958300eb8205aa31
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

kernel/rcu/tree.c: In function 'rcu_sched_clock_irq':
>> kernel/rcu/tree.c:2678:17: error: implicit declaration of function 'rcu_tasks_classic_qs' [-Werror=implicit-function-declaration]
2678 | rcu_tasks_classic_qs(current, false);
| ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +/rcu_tasks_classic_qs +2678 kernel/rcu/tree.c

2644
2645 /*
2646 * This function is invoked from each scheduling-clock interrupt,
2647 * and checks to see if this CPU is in a non-context-switch quiescent
2648 * state, for example, user mode or idle loop. It also schedules RCU
2649 * core processing. If the current grace period has gone on too long,
2650 * it will ask the scheduler to manufacture a context switch for the sole
2651 * purpose of providing the needed quiescent state.
2652 */
2653 void rcu_sched_clock_irq(int user)
2654 {
2655 unsigned long j;
2656
2657 if (IS_ENABLED(CONFIG_PROVE_RCU)) {
2658 j = jiffies;
2659 WARN_ON_ONCE(time_before(j, __this_cpu_read(rcu_data.last_sched_clock)));
2660 __this_cpu_write(rcu_data.last_sched_clock, j);
2661 }
2662 trace_rcu_utilization(TPS("Start scheduler-tick"));
2663 lockdep_assert_irqs_disabled();
2664 raw_cpu_inc(rcu_data.ticks_this_gp);
2665 /* The load-acquire pairs with the store-release setting to true. */
2666 if (smp_load_acquire(this_cpu_ptr(&rcu_data.rcu_urgent_qs))) {
2667 /* Idle and userspace execution already are quiescent states. */
2668 if (!rcu_is_cpu_rrupt_from_idle() && !user) {
2669 set_tsk_need_resched(current);
2670 set_preempt_need_resched();
2671 }
2672 __this_cpu_write(rcu_data.rcu_urgent_qs, false);
2673 }
2674 rcu_flavor_sched_clock_irq(user);
2675 if (rcu_pending(user))
2676 invoke_rcu_core();
2677 if (user)
> 2678 rcu_tasks_classic_qs(current, false);
2679 lockdep_assert_irqs_disabled();
2680
2681 trace_rcu_utilization(TPS("End scheduler-tick"));
2682 }
2683

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx