[tip:WIP.hotplug 59/66] include/linux/rcutree.h:42:20: error: redefinition of 'rcu_virt_note_context_switch'

From: kbuild test robot
Date: Mon Jul 11 2016 - 03:59:28 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.hotplug
head: 0e5de16e9e45b4d853a31761fd74ff56998169a1
commit: 5b7fb17c566567d3470f3651dbd6a18b4875f222 [59/66] rcu: Convert rcutree to hotplug state machine
config: xtensa-allmodconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 4.9.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 5b7fb17c566567d3470f3651dbd6a18b4875f222
# save the attached .config to linux build tree
make.cross ARCH=xtensa

All errors (new ones prefixed by >>):

In file included from kernel/cpu.c:26:0:
>> include/linux/rcutree.h:42:20: error: redefinition of 'rcu_virt_note_context_switch'
static inline void rcu_virt_note_context_switch(int cpu)
^
In file included from include/linux/rcupdate.h:439:0,
from include/linux/rculist.h:10,
from include/linux/dcache.h:6,
from include/linux/fs.h:7,
from include/linux/proc_fs.h:8,
from kernel/cpu.c:6:
include/linux/rcutiny.h:100:20: note: previous definition of 'rcu_virt_note_context_switch' was here
static inline void rcu_virt_note_context_switch(int cpu)
^
In file included from kernel/cpu.c:26:0:
>> include/linux/rcutree.h:69:20: error: redefinition of 'synchronize_rcu_bh_expedited'
static inline void synchronize_rcu_bh_expedited(void)
^
In file included from include/linux/rcupdate.h:439:0,
from include/linux/rculist.h:10,
from include/linux/dcache.h:6,
from include/linux/fs.h:7,
from include/linux/proc_fs.h:8,
from kernel/cpu.c:6:
include/linux/rcutiny.h:75:20: note: previous definition of 'synchronize_rcu_bh_expedited' was here
static inline void synchronize_rcu_bh_expedited(void)
^

vim +/rcu_virt_note_context_switch +42 include/linux/rcutree.h

64db4cff Paul E. McKenney 2008-12-18 36
29ce8310 Gleb Natapov 2011-05-04 37 /*
29ce8310 Gleb Natapov 2011-05-04 38 * Note a virtualization-based context switch. This is simply a
29ce8310 Gleb Natapov 2011-05-04 39 * wrapper around rcu_note_context_switch(), which allows TINY_RCU
46a5d164 Paul E. McKenney 2015-10-07 40 * to save a few bytes. The caller must have disabled interrupts.
29ce8310 Gleb Natapov 2011-05-04 41 */
29ce8310 Gleb Natapov 2011-05-04 @42 static inline void rcu_virt_note_context_switch(int cpu)
29ce8310 Gleb Natapov 2011-05-04 43 {
38200cf2 Paul E. McKenney 2014-10-21 44 rcu_note_context_switch();
29ce8310 Gleb Natapov 2011-05-04 45 }
29ce8310 Gleb Natapov 2011-05-04 46
584dc4ce Teodora Baluta 2013-11-11 47 void synchronize_rcu_bh(void);
584dc4ce Teodora Baluta 2013-11-11 48 void synchronize_sched_expedited(void);
584dc4ce Teodora Baluta 2013-11-11 49 void synchronize_rcu_expedited(void);
03b042bf Paul E. McKenney 2009-06-25 50
b6a4ae76 Boqun Feng 2015-07-29 51 void kfree_call_rcu(struct rcu_head *head, rcu_callback_t func);
486e2593 Paul E. McKenney 2012-01-06 52
236fefaf Paul E. McKenney 2012-01-31 53 /**
236fefaf Paul E. McKenney 2012-01-31 54 * synchronize_rcu_bh_expedited - Brute-force RCU-bh grace period
236fefaf Paul E. McKenney 2012-01-31 55 *
236fefaf Paul E. McKenney 2012-01-31 56 * Wait for an RCU-bh grace period to elapse, but use a "big hammer"
236fefaf Paul E. McKenney 2012-01-31 57 * approach to force the grace period to end quickly. This consumes
236fefaf Paul E. McKenney 2012-01-31 58 * significant time on all CPUs and is unfriendly to real-time workloads,
236fefaf Paul E. McKenney 2012-01-31 59 * so is thus not recommended for any sort of common-case code. In fact,
236fefaf Paul E. McKenney 2012-01-31 60 * if you are using synchronize_rcu_bh_expedited() in a loop, please
236fefaf Paul E. McKenney 2012-01-31 61 * restructure your code to batch your updates, and then use a single
236fefaf Paul E. McKenney 2012-01-31 62 * synchronize_rcu_bh() instead.
236fefaf Paul E. McKenney 2012-01-31 63 *
236fefaf Paul E. McKenney 2012-01-31 64 * Note that it is illegal to call this function while holding any lock
236fefaf Paul E. McKenney 2012-01-31 65 * that is acquired by a CPU-hotplug notifier. And yes, it is also illegal
236fefaf Paul E. McKenney 2012-01-31 66 * to call this function from a CPU-hotplug notifier. Failing to observe
236fefaf Paul E. McKenney 2012-01-31 67 * these restriction will result in deadlock.
236fefaf Paul E. McKenney 2012-01-31 68 */
03b042bf Paul E. McKenney 2009-06-25 @69 static inline void synchronize_rcu_bh_expedited(void)
64db4cff Paul E. McKenney 2008-12-18 70 {
03b042bf Paul E. McKenney 2009-06-25 71 synchronize_sched_expedited();
64db4cff Paul E. McKenney 2008-12-18 72 }

:::::: The code at line 42 was first introduced by commit
:::::: 29ce831000081dd757d3116bf774aafffc4b6b20 rcu: provide rcu_virt_note_context_switch() function.

:::::: TO: Gleb Natapov <gleb@xxxxxxxxxx>
:::::: CC: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: Binary data