2019-08-12 06:15:00

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: build failure after merge of the rcu tree

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


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2019-08-12 16:20:27

by Paul E. McKenney

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the rcu tree

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


2019-08-13 05:27:03

by Stephen Rothwell

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the rcu tree

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


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2019-08-13 15:32:40

by Paul E. McKenney

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the rcu tree

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