Hi all,
After merging the rcu tree, today's linux-next build (x86_64 allmodconfig)
failed like this:
arch/x86/xen/smp_pv.c: In function 'xen_pv_play_dead':
arch/x86/xen/smp_pv.c:439:2: error: implicit declaration of function 'tick_nohz_idle_stop_tick_protected'; did you mean 'tick_nohz_idle_stop_tick'? [-Werror=implicit-function-declaration]
tick_nohz_idle_stop_tick_protected();
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tick_nohz_idle_stop_tick
Caused by commit
a96f9dca9820 ("idle: Prevent late-arriving interrupts from disrupting offline")
Also:
In file included from <command-line>:
include/linux/rcu_segcblist.h:69:2: error: unknown type name 'atomic_long_t'
atomic_long_t len;
^~~~~~~~~~~~~
include/linux/rcu_segcblist.h:74:2: error: unknown type name 'u8'
u8 enabled;
^~
include/linux/rcu_segcblist.h:75:2: error: unknown type name 'u8'
u8 offloaded;
^~
Caused by commits:
e084617762b7 ("rcu/nocb: Use separate flag to indicate disabled ->cblist")
5e114ba3d7a5 ("rcu/nocb: Use separate flag to indicate offloaded ->cblist")
9f3ca0945104 ("rcu/nocb: Atomic ->len field in rcu_segcblist structure")
We prefer our include files to be standalone now if at all possible.
I have used the rcu tree from next-20190809 for today.
--
Cheers,
Stephen Rothwell
On Mon, Aug 12, 2019 at 04:12:36PM +1000, Stephen Rothwell wrote:
> Hi all,
>
> After merging the rcu tree, today's linux-next build (x86_64 allmodconfig)
> failed like this:
>
> arch/x86/xen/smp_pv.c: In function 'xen_pv_play_dead':
> arch/x86/xen/smp_pv.c:439:2: error: implicit declaration of function 'tick_nohz_idle_stop_tick_protected'; did you mean 'tick_nohz_idle_stop_tick'? [-Werror=implicit-function-declaration]
> tick_nohz_idle_stop_tick_protected();
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> tick_nohz_idle_stop_tick
>
> Caused by commit
>
> a96f9dca9820 ("idle: Prevent late-arriving interrupts from disrupting offline")
Peter, I reverted the portion of this commit that removes the
tick_nohz_idle_stop_tick_protected() function. Please let me know if
you instead convince the Xen people to stop using it.
> Also:
>
> In file included from <command-line>:
> include/linux/rcu_segcblist.h:69:2: error: unknown type name 'atomic_long_t'
> atomic_long_t len;
> ^~~~~~~~~~~~~
> include/linux/rcu_segcblist.h:74:2: error: unknown type name 'u8'
> u8 enabled;
> ^~
> include/linux/rcu_segcblist.h:75:2: error: unknown type name 'u8'
> u8 offloaded;
> ^~
>
> Caused by commits:
>
> e084617762b7 ("rcu/nocb: Use separate flag to indicate disabled ->cblist")
> 5e114ba3d7a5 ("rcu/nocb: Use separate flag to indicate offloaded ->cblist")
> 9f3ca0945104 ("rcu/nocb: Atomic ->len field in rcu_segcblist structure")
>
> We prefer our include files to be standalone now if at all possible.
Huh. "It has been building fine for me." I added
#include <uapi/asm-generic/types.h>
#include <asm-generic/atomic-long.h>
to include/linux/rcu_segcblist.h, which hopefully fixes it at your end.
I will push this after testing and rearrangement at this end.
Thanx, Paul
> I have used the rcu tree from next-20190809 for today.
>
> --
> Cheers,
> Stephen Rothwell
Hi Paul,
On Mon, 12 Aug 2019 09:19:34 -0700 "Paul E. McKenney" <[email protected]> wrote:
>
> Huh. "It has been building fine for me." I added
>
> #include <uapi/asm-generic/types.h>
> #include <asm-generic/atomic-long.h>
>
> to include/linux/rcu_segcblist.h, which hopefully fixes it at your end.
That did not work as I got a lot of errors from
include/asm-generic/atomic-long.h. I have added the following patch
for today (which does build). These errors come from having
CONFIG_{,KERNEL_,UAPI_}HEADER_TEST set (which allmodconfig a should do).
From: Stephen Rothwell <[email protected]>
Date: Tue, 13 Aug 2019 15:12:00 +1000
Subject: [PATCH] rcu: use the correct includes
Signed-off-by: Stephen Rothwell <[email protected]>
---
include/linux/rcu_segcblist.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/rcu_segcblist.h b/include/linux/rcu_segcblist.h
index 43e2935e8966..646759042333 100644
--- a/include/linux/rcu_segcblist.h
+++ b/include/linux/rcu_segcblist.h
@@ -14,8 +14,8 @@
#ifndef __INCLUDE_LINUX_RCU_SEGCBLIST_H
#define __INCLUDE_LINUX_RCU_SEGCBLIST_H
-#include <uapi/asm-generic/types.h>
-#include <asm-generic/atomic-long.h>
+#include <linux/types.h>
+#include <linux/atomic.h>
/* Simple unsegmented callback lists. */
struct rcu_cblist {
--
2.20.1
--
Cheers,
Stephen Rothwell
On Tue, Aug 13, 2019 at 03:25:11PM +1000, Stephen Rothwell wrote:
> Hi Paul,
>
> On Mon, 12 Aug 2019 09:19:34 -0700 "Paul E. McKenney" <[email protected]> wrote:
> >
> > Huh. "It has been building fine for me." I added
> >
> > #include <uapi/asm-generic/types.h>
> > #include <asm-generic/atomic-long.h>
> >
> > to include/linux/rcu_segcblist.h, which hopefully fixes it at your end.
>
> That did not work as I got a lot of errors from
> include/asm-generic/atomic-long.h. I have added the following patch
> for today (which does build). These errors come from having
> CONFIG_{,KERNEL_,UAPI_}HEADER_TEST set (which allmodconfig a should do).
>
> From: Stephen Rothwell <[email protected]>
> Date: Tue, 13 Aug 2019 15:12:00 +1000
> Subject: [PATCH] rcu: use the correct includes
>
> Signed-off-by: Stephen Rothwell <[email protected]>
Thank you, Stephen, I have merged this in with attribution. Apologies
for my not being with the times on this one, and "make allmodconfig" it
will be in the future!
Thanx, Paul
> ---
> include/linux/rcu_segcblist.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/rcu_segcblist.h b/include/linux/rcu_segcblist.h
> index 43e2935e8966..646759042333 100644
> --- a/include/linux/rcu_segcblist.h
> +++ b/include/linux/rcu_segcblist.h
> @@ -14,8 +14,8 @@
> #ifndef __INCLUDE_LINUX_RCU_SEGCBLIST_H
> #define __INCLUDE_LINUX_RCU_SEGCBLIST_H
>
> -#include <uapi/asm-generic/types.h>
> -#include <asm-generic/atomic-long.h>
> +#include <linux/types.h>
> +#include <linux/atomic.h>
>
> /* Simple unsegmented callback lists. */
> struct rcu_cblist {
> --
> 2.20.1
>
> --
> Cheers,
> Stephen Rothwell