public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [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