[mark:arm64/preempt-dynamic-static-key 6/6] kernel/locking/locktorture.c:122:3: error: implicit declaration of function 'preempt_schedule'
From: kernel test robot
Date: Sun Nov 21 2021 - 00:45:55 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/preempt-dynamic-static-key
head: 47c5f8b3abb64dcd6ac43521d24ca9e7d7891dcc
commit: 47c5f8b3abb64dcd6ac43521d24ca9e7d7891dcc [6/6] arm64: support PREEMPT_DYNAMIC
config: arm64-buildonly-randconfig-r004-20211118 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project c46becf500df2a7fb4b4fce16178a036c344315a)
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=47c5f8b3abb64dcd6ac43521d24ca9e7d7891dcc
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 47c5f8b3abb64dcd6ac43521d24ca9e7d7891dcc
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=arm64
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/locking/locktorture.c:122:3: error: implicit declaration of function 'preempt_schedule' [-Werror,-Wimplicit-function-declaration]
torture_preempt_schedule(); /* Allow test to be preempted. */
^
include/linux/torture.h:126:36: note: expanded from macro 'torture_preempt_schedule'
#define torture_preempt_schedule() preempt_schedule()
^
kernel/locking/locktorture.c:122:3: note: did you mean 'preempt_schedule_irq'?
include/linux/torture.h:126:36: note: expanded from macro 'torture_preempt_schedule'
#define torture_preempt_schedule() preempt_schedule()
^
include/linux/sched.h:291:17: note: 'preempt_schedule_irq' declared here
asmlinkage void preempt_schedule_irq(void);
^
kernel/locking/locktorture.c:170:3: error: implicit declaration of function 'preempt_schedule' [-Werror,-Wimplicit-function-declaration]
torture_preempt_schedule(); /* Allow test to be preempted. */
^
include/linux/torture.h:126:36: note: expanded from macro 'torture_preempt_schedule'
#define torture_preempt_schedule() preempt_schedule()
^
kernel/locking/locktorture.c:349:3: error: implicit declaration of function 'preempt_schedule' [-Werror,-Wimplicit-function-declaration]
torture_preempt_schedule(); /* Allow test to be preempted. */
^
include/linux/torture.h:126:36: note: expanded from macro 'torture_preempt_schedule'
#define torture_preempt_schedule() preempt_schedule()
^
kernel/locking/locktorture.c:524:3: error: implicit declaration of function 'preempt_schedule' [-Werror,-Wimplicit-function-declaration]
torture_preempt_schedule(); /* Allow test to be preempted. */
^
include/linux/torture.h:126:36: note: expanded from macro 'torture_preempt_schedule'
#define torture_preempt_schedule() preempt_schedule()
^
kernel/locking/locktorture.c:564:3: error: implicit declaration of function 'preempt_schedule' [-Werror,-Wimplicit-function-declaration]
torture_preempt_schedule(); /* Allow test to be preempted. */
^
include/linux/torture.h:126:36: note: expanded from macro 'torture_preempt_schedule'
#define torture_preempt_schedule() preempt_schedule()
^
kernel/locking/locktorture.c:591:3: error: implicit declaration of function 'preempt_schedule' [-Werror,-Wimplicit-function-declaration]
torture_preempt_schedule(); /* Allow test to be preempted. */
^
include/linux/torture.h:126:36: note: expanded from macro 'torture_preempt_schedule'
#define torture_preempt_schedule() preempt_schedule()
^
6 errors generated.
--
>> kernel/rcu/rcutorture.c:400:3: error: implicit declaration of function 'preempt_schedule' [-Werror,-Wimplicit-function-declaration]
torture_preempt_schedule(); /* QS only if preemptible. */
^
include/linux/torture.h:126:36: note: expanded from macro 'torture_preempt_schedule'
#define torture_preempt_schedule() preempt_schedule()
^
kernel/rcu/rcutorture.c:400:3: note: did you mean 'preempt_schedule_irq'?
include/linux/torture.h:126:36: note: expanded from macro 'torture_preempt_schedule'
#define torture_preempt_schedule() preempt_schedule()
^
include/linux/sched.h:291:17: note: 'preempt_schedule_irq' declared here
asmlinkage void preempt_schedule_irq(void);
^
kernel/rcu/rcutorture.c:2051:5: error: implicit declaration of function 'preempt_schedule' [-Werror,-Wimplicit-function-declaration]
preempt_schedule();
^
2 errors generated.
vim +/preempt_schedule +122 kernel/locking/locktorture.c
e086481baf9d04 Paul E. McKenney 2014-02-11 112
e086481baf9d04 Paul E. McKenney 2014-02-11 113 static void torture_lock_busted_write_delay(struct torture_random_state *trsp)
e086481baf9d04 Paul E. McKenney 2014-02-11 114 {
61d49d2f9888ac Paul E. McKenney 2015-04-01 115 const unsigned long longdelay_ms = 100;
e086481baf9d04 Paul E. McKenney 2014-02-11 116
e086481baf9d04 Paul E. McKenney 2014-02-11 117 /* We want a long delay occasionally to force massive contention. */
e086481baf9d04 Paul E. McKenney 2014-02-11 118 if (!(torture_random(trsp) %
61d49d2f9888ac Paul E. McKenney 2015-04-01 119 (cxt.nrealwriters_stress * 2000 * longdelay_ms)))
61d49d2f9888ac Paul E. McKenney 2015-04-01 120 mdelay(longdelay_ms);
630952c22b04ad Davidlohr Bueso 2014-09-11 121 if (!(torture_random(trsp) % (cxt.nrealwriters_stress * 20000)))
cc1321c96f8555 Paul E. McKenney 2017-10-16 @122 torture_preempt_schedule(); /* Allow test to be preempted. */
e086481baf9d04 Paul E. McKenney 2014-02-11 123 }
e086481baf9d04 Paul E. McKenney 2014-02-11 124
:::::: The code at line 122 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
Attachment:
.config.gz
Description: application/gzip