[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202203082348.j9qeWzns-lkp@intel.com>
Date: Wed, 9 Mar 2022 00:00:12 +0800
From: kernel test robot <lkp@...el.com>
To: "Paul E. McKenney" <paulmck@...nel.org>
Cc: llvm@...ts.linux.dev, kbuild-all@...ts.01.org,
GNU/Weeb Mailing List <gwml@...r.gnuweeb.org>,
linux-kernel@...r.kernel.org
Subject: [ammarfaizi2-block:paulmck/linux-rcu/dev 82/84]
kernel/rcu/tree.c:2678:3: error: implicit declaration of function
'rcu_tasks_classic_qs'
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-defconfig (https://download.01.org/0day-ci/archive/20220308/202203082348.j9qeWzns-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
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
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# 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=clang make.cross W=1 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@...el.com>
All errors (new ones prefixed by >>):
>> kernel/rcu/tree.c:2678:3: error: implicit declaration of function 'rcu_tasks_classic_qs' [-Werror,-Wimplicit-function-declaration]
rcu_tasks_classic_qs(current, false);
^
1 error generated.
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@lists.01.org
Powered by blists - more mailing lists