tree:
https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git core/softirq
head: 63b8d46d609dc61be3e1fe8c46f56b7f2350f6d2
commit: 444494ab87f33eb9582dd3bc54c488b55ed601a2 [7/8] softirq,rcu: Use
softirq_needs_break()
config: x86_64-randconfig-r021-20200914 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
b2c32c90bab09a6e2c1f370429db26017a182143)
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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git checkout 444494ab87f33eb9582dd3bc54c488b55ed601a2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from kernel/rcu/tree.c:4458:
> kernel/rcu/tree_plugin.h:2070:18: error: too few arguments to
function call, expected 2, have 1
rcu_do_batch(rdp);
~~~~~~~~~~~~ ^
kernel/rcu/tree.c:2371:13: note: 'rcu_do_batch' declared here
static void rcu_do_batch(struct softirq_action *h, struct rcu_data *rdp)
^
1 error generated.
#
https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?...
git remote add peterz-queue
https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git fetch --no-tags peterz-queue core/softirq
git checkout 444494ab87f33eb9582dd3bc54c488b55ed601a2
vim +2070 kernel/rcu/tree_plugin.h
fbce7497ee5af8 kernel/rcu/tree_plugin.h Paul E. McKenney 2014-06-24 2054
fbce7497ee5af8 kernel/rcu/tree_plugin.h Paul E. McKenney 2014-06-24 2055 /*
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2056 * Invoke any
ready callbacks from the corresponding no-CBs CPU,
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2057 * then, if
there are no more, wait for more to appear.
fbce7497ee5af8 kernel/rcu/tree_plugin.h Paul E. McKenney 2014-06-24 2058 */
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2059 static void
nocb_cb_wait(struct rcu_data *rdp)
fbce7497ee5af8 kernel/rcu/tree_plugin.h Paul E. McKenney 2014-06-24 2060 {
1d5a81c18dc68f kernel/rcu/tree_plugin.h Paul E. McKenney 2019-07-15 2061 unsigned long
cur_gp_seq;
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2062 unsigned long
flags;
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2063 bool
needwake_gp = false;
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2064 struct
rcu_node *rnp = rdp->mynode;
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2065
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2066
local_irq_save(flags);
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2067
rcu_momentary_dyntick_idle();
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2068
local_irq_restore(flags);
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2069
local_bh_disable();
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 @2070
rcu_do_batch(rdp);
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2071
local_bh_enable();
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2072
lockdep_assert_irqs_enabled();
81c0b3d724f419 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-28 2073
rcu_nocb_lock_irqsave(rdp, flags);
1d5a81c18dc68f kernel/rcu/tree_plugin.h Paul E. McKenney 2019-07-15 2074 if
(rcu_segcblist_nextgp(&rdp->cblist, &cur_gp_seq) &&
1d5a81c18dc68f kernel/rcu/tree_plugin.h Paul E. McKenney 2019-07-15 2075
rcu_seq_done(&rnp->gp_seq, cur_gp_seq) &&
1d5a81c18dc68f kernel/rcu/tree_plugin.h Paul E. McKenney 2019-07-15 2076
raw_spin_trylock_rcu_node(rnp)) { /* irqs already disabled. */
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2077 needwake_gp =
rcu_advance_cbs(rdp->mynode, rdp);
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2078
raw_spin_unlock_rcu_node(rnp); /* irqs remain disabled. */
523bddd553c09a kernel/rcu/tree_plugin.h Paul E. McKenney 2019-06-01 2079 }
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2080 if
(rcu_segcblist_ready_cbs(&rdp->cblist)) {
81c0b3d724f419 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-28 2081
rcu_nocb_unlock_irqrestore(rdp, flags);
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2082 if
(needwake_gp)
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2083
rcu_gp_kthread_wake();
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2084 return;
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2085 }
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2086
f7c9a9b664fb32 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-04-01 2087
trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("CBSleep"));
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2088
WRITE_ONCE(rdp->nocb_cb_sleep, true);
81c0b3d724f419 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-28 2089
rcu_nocb_unlock_irqrestore(rdp, flags);
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2090 if
(needwake_gp)
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2091
rcu_gp_kthread_wake();
12f54c3a841010 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-03-29 2092
swait_event_interruptible_exclusive(rdp->nocb_cb_wq,
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2093
!READ_ONCE(rdp->nocb_cb_sleep));
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2094 if
(!smp_load_acquire(&rdp->nocb_cb_sleep)) { /* VVV */
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2095 /* ^^^ Ensure
CB invocation follows _sleep test. */
5d6742b37727e1 kernel/rcu/tree_plugin.h Paul E. McKenney 2019-05-15 2096 return;
69a79bb12a8102 kernel/rcutree_plugin.h Paul E. McKenney 2013-08-15 2097 }
73a860cd58a1eb kernel/rcu/tree_plugin.h Paul E. McKenney 2014-08-14 2098
WARN_ON(signal_pending(current));
88d1bead858d88 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-04 2099
trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("WokeEmpty"));
3fbfbf7a3b66ec kernel/rcutree_plugin.h Paul E. McKenney 2012-08-19 2100 }
3fbfbf7a3b66ec kernel/rcutree_plugin.h Paul E. McKenney 2012-08-19 2101
:::::: The code at line 2070 was first introduced by commit
:::::: 5d6742b37727e111f4755155e59c5319cf5caa7b rcu/nocb: Use rcu_segcblist for no-CBs
CPUs
:::::: TO: Paul E. McKenney <paulmck(a)linux.ibm.com>
:::::: CC: Paul E. McKenney <paulmck(a)linux.ibm.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org