[mark:arm64/preempt-dynamic-static-key 7/7] kernel/rcu/rcutorture.c:408:3: error: implicit declaration of function 'preempt_schedule'

From: kernel test robot
Date: Fri Feb 04 2022 - 18:36:02 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/preempt-dynamic-static-key
head: fb01536865a3af674b204f6d0fe0935264c4b434
commit: fb01536865a3af674b204f6d0fe0935264c4b434 [7/7] arm64: support PREEMPT_DYNAMIC
config: arm64-randconfig-r025-20220131 (https://download.01.org/0day-ci/archive/20220205/202202050711.Ze2cgnZY-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project a73e4ce6a59b01f0e37037761c1e6889d539d233)
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 arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?id=fb01536865a3af674b204f6d0fe0935264c4b434
git remote add mark https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git
git fetch --no-tags mark arm64/preempt-dynamic-static-key
git checkout fb01536865a3af674b204f6d0fe0935264c4b434
# 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=arm64 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/rcutorture.c:408:3: error: implicit declaration of function 'preempt_schedule' [-Werror,-Wimplicit-function-declaration]
torture_preempt_schedule(); /* QS only if preemptible. */
^
include/linux/torture.h:121:36: note: expanded from macro 'torture_preempt_schedule'
#define torture_preempt_schedule() preempt_schedule()
^
kernel/rcu/rcutorture.c:408:3: note: did you mean 'preempt_schedule_irq'?
include/linux/torture.h:121:36: note: expanded from macro 'torture_preempt_schedule'
#define torture_preempt_schedule() preempt_schedule()
^
include/linux/sched.h:296:17: note: 'preempt_schedule_irq' declared here
asmlinkage void preempt_schedule_irq(void);
^
kernel/rcu/rcutorture.c:2087:5: error: implicit declaration of function 'preempt_schedule' [-Werror,-Wimplicit-function-declaration]
preempt_schedule();
^
2 errors generated.


vim +/preempt_schedule +408 kernel/rcu/rcutorture.c

72e9bb549280b3 kernel/rcutorture.c Paul E. McKenney 2006-06-27 376
c116dba68d1924 kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-13 377 static void
c116dba68d1924 kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-13 378 rcu_read_delay(struct torture_random_state *rrsp, struct rt_read_seg *rtrsp)
b2896d2e75c87e kernel/rcutorture.c Paul E. McKenney 2006-10-04 379 {
d0af39e89ec59f kernel/rcu/rcutorture.c Paul E. McKenney 2016-10-10 380 unsigned long started;
d0af39e89ec59f kernel/rcu/rcutorture.c Paul E. McKenney 2016-10-10 381 unsigned long completed;
b8d57a76d9f92a kernel/rcutorture.c Josh Triplett 2009-09-08 382 const unsigned long shortdelay_us = 200;
1e69676592edaf kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-20 383 unsigned long longdelay_ms = 300;
d0af39e89ec59f kernel/rcu/rcutorture.c Paul E. McKenney 2016-10-10 384 unsigned long long ts;
b2896d2e75c87e kernel/rcutorture.c Paul E. McKenney 2006-10-04 385
b8d57a76d9f92a kernel/rcutorture.c Josh Triplett 2009-09-08 386 /* We want a short delay sometimes to make a reader delay the grace
b8d57a76d9f92a kernel/rcutorture.c Josh Triplett 2009-09-08 387 * period, and we want a long delay occasionally to trigger
b8d57a76d9f92a kernel/rcutorture.c Josh Triplett 2009-09-08 388 * force_quiescent_state. */
b2896d2e75c87e kernel/rcutorture.c Paul E. McKenney 2006-10-04 389
102c14d2f87976 kernel/rcu/rcutorture.c Paul E. McKenney 2019-12-21 390 if (!READ_ONCE(rcu_fwd_cb_nodelay) &&
4871848531af1d kernel/rcu/rcutorture.c Paul E. McKenney 2018-08-15 391 !(torture_random(rrsp) % (nrealreaders * 2000 * longdelay_ms))) {
17ef2fe97c8c8e kernel/rcu/rcutorture.c Paul E. McKenney 2018-04-27 392 started = cur_ops->get_gp_seq();
d0af39e89ec59f kernel/rcu/rcutorture.c Paul E. McKenney 2016-10-10 393 ts = rcu_trace_clock_local();
1e69676592edaf kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-20 394 if (preempt_count() & (SOFTIRQ_MASK | HARDIRQ_MASK))
1e69676592edaf kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-20 395 longdelay_ms = 5; /* Avoid triggering BH limits. */
b8d57a76d9f92a kernel/rcutorture.c Josh Triplett 2009-09-08 396 mdelay(longdelay_ms);
c116dba68d1924 kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-13 397 rtrsp->rt_delay_ms = longdelay_ms;
17ef2fe97c8c8e kernel/rcu/rcutorture.c Paul E. McKenney 2018-04-27 398 completed = cur_ops->get_gp_seq();
d0af39e89ec59f kernel/rcu/rcutorture.c Paul E. McKenney 2016-10-10 399 do_trace_rcu_torture_read(cur_ops->name, NULL, ts,
d0af39e89ec59f kernel/rcu/rcutorture.c Paul E. McKenney 2016-10-10 400 started, completed);
d0af39e89ec59f kernel/rcu/rcutorture.c Paul E. McKenney 2016-10-10 401 }
c116dba68d1924 kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-13 402 if (!(torture_random(rrsp) % (nrealreaders * 2 * shortdelay_us))) {
b8d57a76d9f92a kernel/rcutorture.c Josh Triplett 2009-09-08 403 udelay(shortdelay_us);
c116dba68d1924 kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-13 404 rtrsp->rt_delay_us = shortdelay_us;
c116dba68d1924 kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-13 405 }
51b1130eb5823d kernel/rcu/rcutorture.c Paul E. McKenney 2014-01-27 406 if (!preempt_count() &&
c116dba68d1924 kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-13 407 !(torture_random(rrsp) % (nrealreaders * 500))) {
cc1321c96f8555 kernel/rcu/rcutorture.c Paul E. McKenney 2017-10-16 @408 torture_preempt_schedule(); /* QS only if preemptible. */
c116dba68d1924 kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-13 409 rtrsp->rt_preempted = true;
c116dba68d1924 kernel/rcu/rcutorture.c Paul E. McKenney 2018-07-13 410 }
b2896d2e75c87e kernel/rcutorture.c Paul E. McKenney 2006-10-04 411 }
b2896d2e75c87e kernel/rcutorture.c Paul E. McKenney 2006-10-04 412

:::::: The code at line 408 was first introduced by commit
:::::: cc1321c96f855525fbd847fec130f000daa1bb1f torture: Reduce #ifdefs for preempt_schedule()

:::::: TO: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
:::::: CC: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>

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