* [rcu:rcu/urgent 11/11] include/linux/srcu.h:66:2: error: #error "Unknown SRCU implementation specified to kernel configuration"
@ 2017-04-23 19:00 kbuild test robot
2017-04-23 20:04 ` Paul E. McKenney
0 siblings, 1 reply; 2+ messages in thread
From: kbuild test robot @ 2017-04-23 19:00 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: kbuild-all, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 3564 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/urgent
head: 746ec1f689abc74dca72fdce4134decdbfaec295
commit: 746ec1f689abc74dca72fdce4134decdbfaec295 [11/11] srcu: Fix Kconfig botch when SRCU not selected
config: sparc64-allnoconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 746ec1f689abc74dca72fdce4134decdbfaec295
# save the attached .config to linux build tree
make.cross ARCH=sparc64
All errors (new ones prefixed by >>):
In file included from include/linux/notifier.h:15:0,
from include/linux/pm_qos.h:8,
from kernel/power/qos.c:32:
>> include/linux/srcu.h:66:2: error: #error "Unknown SRCU implementation specified to kernel configuration"
#error "Unknown SRCU implementation specified to kernel configuration"
^~~~~
In file included from include/linux/pm_qos.h:8:0,
from kernel/power/qos.c:32:
>> include/linux/notifier.h:77:21: error: field 'srcu' has incomplete type
struct srcu_struct srcu;
^~~~
vim +66 include/linux/srcu.h
632ee2001 Paul E. McKenney 2010-02-22 50
55c6659af Lai Jiangshan 2012-10-13 51 #define __SRCU_DEP_MAP_INIT(srcu_name) .dep_map = { .name = #srcu_name },
632ee2001 Paul E. McKenney 2010-02-22 52 #else /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
632ee2001 Paul E. McKenney 2010-02-22 53
e6a92013b Alan Stern 2006-10-04 54 int init_srcu_struct(struct srcu_struct *sp);
632ee2001 Paul E. McKenney 2010-02-22 55
55c6659af Lai Jiangshan 2012-10-13 56 #define __SRCU_DEP_MAP_INIT(srcu_name)
632ee2001 Paul E. McKenney 2010-02-22 57 #endif /* #else #ifdef CONFIG_DEBUG_LOCK_ALLOC */
632ee2001 Paul E. McKenney 2010-02-22 58
d8be81735 Paul E. McKenney 2017-03-25 59 #ifdef CONFIG_TINY_SRCU
d8be81735 Paul E. McKenney 2017-03-25 60 #include <linux/srcutiny.h>
d8be81735 Paul E. McKenney 2017-03-25 61 #elif defined(CONFIG_TREE_SRCU)
d8be81735 Paul E. McKenney 2017-03-25 62 #include <linux/srcutree.h>
dad81a202 Paul E. McKenney 2017-03-25 63 #elif defined(CONFIG_CLASSIC_SRCU)
dad81a202 Paul E. McKenney 2017-03-25 64 #include <linux/srcuclassic.h>
d8be81735 Paul E. McKenney 2017-03-25 65 #else
d8be81735 Paul E. McKenney 2017-03-25 @66 #error "Unknown SRCU implementation specified to kernel configuration"
d8be81735 Paul E. McKenney 2017-03-25 67 #endif
55c6659af Lai Jiangshan 2012-10-13 68
931ea9d1a Lai Jiangshan 2012-03-19 69 /**
931ea9d1a Lai Jiangshan 2012-03-19 70 * call_srcu() - Queue a callback for invocation after an SRCU grace period
931ea9d1a Lai Jiangshan 2012-03-19 71 * @sp: srcu_struct in queue the callback
931ea9d1a Lai Jiangshan 2012-03-19 72 * @head: structure to be used for queueing the SRCU callback.
931ea9d1a Lai Jiangshan 2012-03-19 73 * @func: function to be invoked after the SRCU grace period
931ea9d1a Lai Jiangshan 2012-03-19 74 *
:::::: The code at line 66 was first introduced by commit
:::::: d8be81735aa89413b333de488251f0e64e2be591 srcu: Create a tiny SRCU
:::::: TO: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
:::::: CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 5201 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [rcu:rcu/urgent 11/11] include/linux/srcu.h:66:2: error: #error "Unknown SRCU implementation specified to kernel configuration"
2017-04-23 19:00 [rcu:rcu/urgent 11/11] include/linux/srcu.h:66:2: error: #error "Unknown SRCU implementation specified to kernel configuration" kbuild test robot
@ 2017-04-23 20:04 ` Paul E. McKenney
0 siblings, 0 replies; 2+ messages in thread
From: Paul E. McKenney @ 2017-04-23 20:04 UTC (permalink / raw)
To: kbuild test robot; +Cc: kbuild-all, linux-kernel
On Mon, Apr 24, 2017 at 03:00:38AM +0800, kbuild test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/urgent
> head: 746ec1f689abc74dca72fdce4134decdbfaec295
> commit: 746ec1f689abc74dca72fdce4134decdbfaec295 [11/11] srcu: Fix Kconfig botch when SRCU not selected
> config: sparc64-allnoconfig (attached as .config)
> compiler: sparc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
> wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout 746ec1f689abc74dca72fdce4134decdbfaec295
> # save the attached .config to linux build tree
> make.cross ARCH=sparc64
>
> All errors (new ones prefixed by >>):
>
> In file included from include/linux/notifier.h:15:0,
> from include/linux/pm_qos.h:8,
> from kernel/power/qos.c:32:
> >> include/linux/srcu.h:66:2: error: #error "Unknown SRCU implementation specified to kernel configuration"
> #error "Unknown SRCU implementation specified to kernel configuration"
> ^~~~~
> In file included from include/linux/pm_qos.h:8:0,
> from kernel/power/qos.c:32:
> >> include/linux/notifier.h:77:21: error: field 'srcu' has incomplete type
> struct srcu_struct srcu;
> ^~~~
And it appears that there is much code that includes srcu.h without
having "select SRCU", which underlines the point that SRCU is no longer
optional. Patch below, pushing to -rcu as well.
------------------------------------------------------------------------
commit b0d5280678ad03d0b8dbdbe827c9e31c43923e02
Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Date: Sun Apr 23 12:50:59 2017 -0700
srcu: Make SRCU be built by default
SRCU is optional, and included only if there is a "select SRCU" in effect.
However, we now have Tiny SRCU, so this commit defaults CONFIG_SRCU=y.
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
diff --git a/init/Kconfig b/init/Kconfig
index fe72c12e06a5..42a346b0df43 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -521,6 +521,7 @@ config RCU_EXPERT
config SRCU
bool
+ default y
help
This option selects the sleepable version of RCU. This version
permits arbitrary sleeping or blocking within RCU read-side critical
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-04-23 20:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-23 19:00 [rcu:rcu/urgent 11/11] include/linux/srcu.h:66:2: error: #error "Unknown SRCU implementation specified to kernel configuration" kbuild test robot
2017-04-23 20:04 ` Paul E. McKenney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox