All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: stable-rc/linux-3.18.y build: 184 builds: 3 failed, 181 passed, 3 errors (v3.18.86-23-g635374e30005)
       [not found] <5a2843f8.3bb0df0a.2b900.d272@mx.google.com>
@ 2017-12-06 20:56 ` Arnd Bergmann
  2017-12-06 21:47   ` Paul E. McKenney
  0 siblings, 1 reply; 4+ messages in thread
From: Arnd Bergmann @ 2017-12-06 20:56 UTC (permalink / raw)
  To: kernelci.org bot
  Cc: Kernel Build Reports Mailman List, stable, gregkh,
	Masami Hiramatsu, Paul E. McKenney, Ingo Molnar, Sasha Levin

On Wed, Dec 6, 2017 at 8:24 PM, kernelci.org bot <bot@kernelci.org> wrote:
>
> stable-rc/linux-3.18.y build: 184 builds: 3 failed, 181 passed, 3 errors (v3.18.86-23-g635374e30005)
> Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-3.18.y/kernel/v3.18.86-23-g635374e30005/
> Tree: stable-rc
> Branch: linux-3.18.y
> Git Describe: v3.18.86-23-g635374e30005
> Git Commit: 635374e300051ce71a548aff2c469fbda3910c21
> Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> Built: 4 unique architectures
>
> Build Failures Detected:
>
> x86: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
> defconfig+CONFIG_LKDTM=y FAIL
> i386_defconfig FAIL
> x86_64_defconfig FAIL
>
> Errors Detected:
>
> x86: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
> defconfig+CONFIG_LKDTM=y 1 error
> i386_defconfig 1 error
> x86_64_defconfig 1 error
> Errors summary:
> 2 kprobes.c:(.text+0x91f42): undefined reference to `synchronize_rcu_tasks'
> 1 kprobes.c:(.text+0x80dc8): undefined reference to `synchronize_rcu_tasks'

Same as v4.9, caused by 98efb31592b4 ("kprobes: Use synchronize_rcu_tasks()
 for optprobe with CONFIG_PREEMPT=y").

       Arnd

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: stable-rc/linux-3.18.y build: 184 builds: 3 failed, 181 passed, 3 errors (v3.18.86-23-g635374e30005)
  2017-12-06 20:56 ` stable-rc/linux-3.18.y build: 184 builds: 3 failed, 181 passed, 3 errors (v3.18.86-23-g635374e30005) Arnd Bergmann
@ 2017-12-06 21:47   ` Paul E. McKenney
  2017-12-06 23:30     ` Masami Hiramatsu
  0 siblings, 1 reply; 4+ messages in thread
From: Paul E. McKenney @ 2017-12-06 21:47 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: kernelci.org bot, Kernel Build Reports Mailman List, stable,
	gregkh, Masami Hiramatsu, Ingo Molnar, Sasha Levin

On Wed, Dec 06, 2017 at 09:56:36PM +0100, Arnd Bergmann wrote:
> On Wed, Dec 6, 2017 at 8:24 PM, kernelci.org bot <bot@kernelci.org> wrote:
> >
> > stable-rc/linux-3.18.y build: 184 builds: 3 failed, 181 passed, 3 errors (v3.18.86-23-g635374e30005)
> > Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-3.18.y/kernel/v3.18.86-23-g635374e30005/
> > Tree: stable-rc
> > Branch: linux-3.18.y
> > Git Describe: v3.18.86-23-g635374e30005
> > Git Commit: 635374e300051ce71a548aff2c469fbda3910c21
> > Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> > Built: 4 unique architectures
> >
> > Build Failures Detected:
> >
> > x86: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
> > defconfig+CONFIG_LKDTM=y FAIL
> > i386_defconfig FAIL
> > x86_64_defconfig FAIL
> >
> > Errors Detected:
> >
> > x86: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
> > defconfig+CONFIG_LKDTM=y 1 error
> > i386_defconfig 1 error
> > x86_64_defconfig 1 error
> > Errors summary:
> > 2 kprobes.c:(.text+0x91f42): undefined reference to `synchronize_rcu_tasks'
> > 1 kprobes.c:(.text+0x80dc8): undefined reference to `synchronize_rcu_tasks'
> 
> Same as v4.9, caused by 98efb31592b4 ("kprobes: Use synchronize_rcu_tasks()
>  for optprobe with CONFIG_PREEMPT=y").

Looks to me like they are both missing 7e42776d5ed1f ("rcu: Drive
TASKS_RCU directly off of PREEMPT"), which is shown below.

Masami, how would you like to proceed?

							Thanx, Paul

------------------------------------------------------------------------

commit 7e42776d5ed1fe9a941ed8876c5d15cd7cf5d89f
Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Date:   Thu May 25 08:05:00 2017 -0700

    rcu: Drive TASKS_RCU directly off of PREEMPT
    
    The actual use of TASKS_RCU is only when PREEMPT, otherwise RCU-sched
    is used instead.  This commit therefore makes synchronize_rcu_tasks()
    and call_rcu_tasks() available always, but mapped to synchronize_sched()
    and call_rcu_sched(), respectively, when !PREEMPT.  This approach also
    allows some #ifdefs to be removed from rcutorture.
    
    Reported-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
    Acked-by: Ingo Molnar <mingo@kernel.org>

diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index f816fc72b51e..c3f380befdd7 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -58,8 +58,6 @@ void call_rcu(struct rcu_head *head, rcu_callback_t func);
 void call_rcu_bh(struct rcu_head *head, rcu_callback_t func);
 void call_rcu_sched(struct rcu_head *head, rcu_callback_t func);
 void synchronize_sched(void);
-void call_rcu_tasks(struct rcu_head *head, rcu_callback_t func);
-void synchronize_rcu_tasks(void);
 void rcu_barrier_tasks(void);
 
 #ifdef CONFIG_PREEMPT_RCU
@@ -176,10 +174,14 @@ extern struct srcu_struct tasks_rcu_exit_srcu;
 		rcu_all_qs(); \
 		rcu_note_voluntary_context_switch_lite(t); \
 	} while (0)
+void call_rcu_tasks(struct rcu_head *head, rcu_callback_t func);
+void synchronize_rcu_tasks(void);
 #else /* #ifdef CONFIG_TASKS_RCU */
 #define TASKS_RCU(x) do { } while (0)
 #define rcu_note_voluntary_context_switch_lite(t)	do { } while (0)
 #define rcu_note_voluntary_context_switch(t)		rcu_all_qs()
+#define call_rcu_tasks call_rcu_sched
+#define synchronize_rcu_tasks synchronize_sched
 #endif /* #else #ifdef CONFIG_TASKS_RCU */
 
 /**
diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
index be90c945063f..9210379c0353 100644
--- a/kernel/rcu/Kconfig
+++ b/kernel/rcu/Kconfig
@@ -69,8 +69,7 @@ config TREE_SRCU
 	  This option selects the full-fledged version of SRCU.
 
 config TASKS_RCU
-	bool
-	default n
+	def_bool PREEMPT
 	select SRCU
 	help
 	  This option enables a task-based RCU implementation that uses
diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index b8f7f8ce8575..b284c861a511 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -696,8 +696,6 @@ static struct rcu_torture_ops sched_ops = {
 	.name		= "sched"
 };
 
-#ifdef CONFIG_TASKS_RCU
-
 /*
  * Definitions for RCU-tasks torture testing.
  */
@@ -735,24 +733,11 @@ static struct rcu_torture_ops tasks_ops = {
 	.name		= "tasks"
 };
 
-#define RCUTORTURE_TASKS_OPS &tasks_ops,
-
 static bool __maybe_unused torturing_tasks(void)
 {
 	return cur_ops == &tasks_ops;
 }
 
-#else /* #ifdef CONFIG_TASKS_RCU */
-
-#define RCUTORTURE_TASKS_OPS
-
-static bool __maybe_unused torturing_tasks(void)
-{
-	return false;
-}
-
-#endif /* #else #ifdef CONFIG_TASKS_RCU */
-
 /*
  * RCU torture priority-boost testing.  Runs one real-time thread per
  * CPU for moderate bursts, repeatedly registering RCU callbacks and
@@ -1749,7 +1734,7 @@ rcu_torture_init(void)
 	int firsterr = 0;
 	static struct rcu_torture_ops *torture_ops[] = {
 		&rcu_ops, &rcu_bh_ops, &rcu_busted_ops, &srcu_ops, &srcud_ops,
-		&sched_ops, RCUTORTURE_TASKS_OPS
+		&sched_ops, &tasks_ops,
 	};
 
 	if (!torture_init_begin(torture_type, verbose, &torture_runnable))
diff --git a/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt b/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
index 9ad3f89c8dc7..af6fca03602f 100644
--- a/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
+++ b/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
@@ -69,11 +69,11 @@ CONFIG_RCU_TORTURE_TEST_RUNNABLE
 CONFIG_PREEMPT_RCU
 CONFIG_TREE_RCU
 CONFIG_TINY_RCU
+CONFIG_TASKS_RCU
 
 	These are controlled by CONFIG_PREEMPT and/or CONFIG_SMP.
 
 CONFIG_SRCU
-CONFIG_TASKS_RCU
 
 	Selected by CONFIG_RCU_TORTURE_TEST, so cannot disable.
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: stable-rc/linux-3.18.y build: 184 builds: 3 failed, 181 passed, 3 errors (v3.18.86-23-g635374e30005)
  2017-12-06 21:47   ` Paul E. McKenney
@ 2017-12-06 23:30     ` Masami Hiramatsu
  2017-12-07  7:54       ` gregkh
  0 siblings, 1 reply; 4+ messages in thread
From: Masami Hiramatsu @ 2017-12-06 23:30 UTC (permalink / raw)
  To: paulmck
  Cc: Arnd Bergmann, kernelci.org bot,
	Kernel Build Reports Mailman List, stable, gregkh,
	Masami Hiramatsu, Ingo Molnar, Sasha Levin

On Wed, 6 Dec 2017 13:47:38 -0800
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:

> On Wed, Dec 06, 2017 at 09:56:36PM +0100, Arnd Bergmann wrote:
> > On Wed, Dec 6, 2017 at 8:24 PM, kernelci.org bot <bot@kernelci.org> wrote:
> > >
> > > stable-rc/linux-3.18.y build: 184 builds: 3 failed, 181 passed, 3 errors (v3.18.86-23-g635374e30005)
> > > Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-3.18.y/kernel/v3.18.86-23-g635374e30005/
> > > Tree: stable-rc
> > > Branch: linux-3.18.y
> > > Git Describe: v3.18.86-23-g635374e30005
> > > Git Commit: 635374e300051ce71a548aff2c469fbda3910c21
> > > Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> > > Built: 4 unique architectures
> > >
> > > Build Failures Detected:
> > >
> > > x86: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
> > > defconfig+CONFIG_LKDTM=y FAIL
> > > i386_defconfig FAIL
> > > x86_64_defconfig FAIL
> > >
> > > Errors Detected:
> > >
> > > x86: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
> > > defconfig+CONFIG_LKDTM=y 1 error
> > > i386_defconfig 1 error
> > > x86_64_defconfig 1 error
> > > Errors summary:
> > > 2 kprobes.c:(.text+0x91f42): undefined reference to `synchronize_rcu_tasks'
> > > 1 kprobes.c:(.text+0x80dc8): undefined reference to `synchronize_rcu_tasks'
> > 
> > Same as v4.9, caused by 98efb31592b4 ("kprobes: Use synchronize_rcu_tasks()
> >  for optprobe with CONFIG_PREEMPT=y").
> 
> Looks to me like they are both missing 7e42776d5ed1f ("rcu: Drive
> TASKS_RCU directly off of PREEMPT"), which is shown below.
> 
> Masami, how would you like to proceed?

I think the commit 98efb31592b4 is an improvement patch,
so do not need to pull on 3.18. Maybe 4.14 is easy to pull
because we just need below patch. but for 3.18, it needs
more depending patches, doesn't it?

Thank you,

> 
> 							Thanx, Paul
> 
> ------------------------------------------------------------------------
> 
> commit 7e42776d5ed1fe9a941ed8876c5d15cd7cf5d89f
> Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> Date:   Thu May 25 08:05:00 2017 -0700
> 
>     rcu: Drive TASKS_RCU directly off of PREEMPT
>     
>     The actual use of TASKS_RCU is only when PREEMPT, otherwise RCU-sched
>     is used instead.  This commit therefore makes synchronize_rcu_tasks()
>     and call_rcu_tasks() available always, but mapped to synchronize_sched()
>     and call_rcu_sched(), respectively, when !PREEMPT.  This approach also
>     allows some #ifdefs to be removed from rcutorture.
>     
>     Reported-by: Ingo Molnar <mingo@kernel.org>
>     Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
>     Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
>     Acked-by: Ingo Molnar <mingo@kernel.org>
> 
> diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
> index f816fc72b51e..c3f380befdd7 100644
> --- a/include/linux/rcupdate.h
> +++ b/include/linux/rcupdate.h
> @@ -58,8 +58,6 @@ void call_rcu(struct rcu_head *head, rcu_callback_t func);
>  void call_rcu_bh(struct rcu_head *head, rcu_callback_t func);
>  void call_rcu_sched(struct rcu_head *head, rcu_callback_t func);
>  void synchronize_sched(void);
> -void call_rcu_tasks(struct rcu_head *head, rcu_callback_t func);
> -void synchronize_rcu_tasks(void);
>  void rcu_barrier_tasks(void);
>  
>  #ifdef CONFIG_PREEMPT_RCU
> @@ -176,10 +174,14 @@ extern struct srcu_struct tasks_rcu_exit_srcu;
>  		rcu_all_qs(); \
>  		rcu_note_voluntary_context_switch_lite(t); \
>  	} while (0)
> +void call_rcu_tasks(struct rcu_head *head, rcu_callback_t func);
> +void synchronize_rcu_tasks(void);
>  #else /* #ifdef CONFIG_TASKS_RCU */
>  #define TASKS_RCU(x) do { } while (0)
>  #define rcu_note_voluntary_context_switch_lite(t)	do { } while (0)
>  #define rcu_note_voluntary_context_switch(t)		rcu_all_qs()
> +#define call_rcu_tasks call_rcu_sched
> +#define synchronize_rcu_tasks synchronize_sched
>  #endif /* #else #ifdef CONFIG_TASKS_RCU */
>  
>  /**
> diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
> index be90c945063f..9210379c0353 100644
> --- a/kernel/rcu/Kconfig
> +++ b/kernel/rcu/Kconfig
> @@ -69,8 +69,7 @@ config TREE_SRCU
>  	  This option selects the full-fledged version of SRCU.
>  
>  config TASKS_RCU
> -	bool
> -	default n
> +	def_bool PREEMPT
>  	select SRCU
>  	help
>  	  This option enables a task-based RCU implementation that uses
> diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
> index b8f7f8ce8575..b284c861a511 100644
> --- a/kernel/rcu/rcutorture.c
> +++ b/kernel/rcu/rcutorture.c
> @@ -696,8 +696,6 @@ static struct rcu_torture_ops sched_ops = {
>  	.name		= "sched"
>  };
>  
> -#ifdef CONFIG_TASKS_RCU
> -
>  /*
>   * Definitions for RCU-tasks torture testing.
>   */
> @@ -735,24 +733,11 @@ static struct rcu_torture_ops tasks_ops = {
>  	.name		= "tasks"
>  };
>  
> -#define RCUTORTURE_TASKS_OPS &tasks_ops,
> -
>  static bool __maybe_unused torturing_tasks(void)
>  {
>  	return cur_ops == &tasks_ops;
>  }
>  
> -#else /* #ifdef CONFIG_TASKS_RCU */
> -
> -#define RCUTORTURE_TASKS_OPS
> -
> -static bool __maybe_unused torturing_tasks(void)
> -{
> -	return false;
> -}
> -
> -#endif /* #else #ifdef CONFIG_TASKS_RCU */
> -
>  /*
>   * RCU torture priority-boost testing.  Runs one real-time thread per
>   * CPU for moderate bursts, repeatedly registering RCU callbacks and
> @@ -1749,7 +1734,7 @@ rcu_torture_init(void)
>  	int firsterr = 0;
>  	static struct rcu_torture_ops *torture_ops[] = {
>  		&rcu_ops, &rcu_bh_ops, &rcu_busted_ops, &srcu_ops, &srcud_ops,
> -		&sched_ops, RCUTORTURE_TASKS_OPS
> +		&sched_ops, &tasks_ops,
>  	};
>  
>  	if (!torture_init_begin(torture_type, verbose, &torture_runnable))
> diff --git a/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt b/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
> index 9ad3f89c8dc7..af6fca03602f 100644
> --- a/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
> +++ b/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
> @@ -69,11 +69,11 @@ CONFIG_RCU_TORTURE_TEST_RUNNABLE
>  CONFIG_PREEMPT_RCU
>  CONFIG_TREE_RCU
>  CONFIG_TINY_RCU
> +CONFIG_TASKS_RCU
>  
>  	These are controlled by CONFIG_PREEMPT and/or CONFIG_SMP.
>  
>  CONFIG_SRCU
> -CONFIG_TASKS_RCU
>  
>  	Selected by CONFIG_RCU_TORTURE_TEST, so cannot disable.
>  
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: stable-rc/linux-3.18.y build: 184 builds: 3 failed, 181 passed, 3 errors (v3.18.86-23-g635374e30005)
  2017-12-06 23:30     ` Masami Hiramatsu
@ 2017-12-07  7:54       ` gregkh
  0 siblings, 0 replies; 4+ messages in thread
From: gregkh @ 2017-12-07  7:54 UTC (permalink / raw)
  To: Masami Hiramatsu
  Cc: paulmck, Arnd Bergmann, kernelci.org bot,
	Kernel Build Reports Mailman List, stable, Ingo Molnar,
	Sasha Levin

On Thu, Dec 07, 2017 at 08:30:49AM +0900, Masami Hiramatsu wrote:
> On Wed, 6 Dec 2017 13:47:38 -0800
> "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:
> 
> > On Wed, Dec 06, 2017 at 09:56:36PM +0100, Arnd Bergmann wrote:
> > > On Wed, Dec 6, 2017 at 8:24 PM, kernelci.org bot <bot@kernelci.org> wrote:
> > > >
> > > > stable-rc/linux-3.18.y build: 184 builds: 3 failed, 181 passed, 3 errors (v3.18.86-23-g635374e30005)
> > > > Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-3.18.y/kernel/v3.18.86-23-g635374e30005/
> > > > Tree: stable-rc
> > > > Branch: linux-3.18.y
> > > > Git Describe: v3.18.86-23-g635374e30005
> > > > Git Commit: 635374e300051ce71a548aff2c469fbda3910c21
> > > > Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> > > > Built: 4 unique architectures
> > > >
> > > > Build Failures Detected:
> > > >
> > > > x86: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
> > > > defconfig+CONFIG_LKDTM=y FAIL
> > > > i386_defconfig FAIL
> > > > x86_64_defconfig FAIL
> > > >
> > > > Errors Detected:
> > > >
> > > > x86: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
> > > > defconfig+CONFIG_LKDTM=y 1 error
> > > > i386_defconfig 1 error
> > > > x86_64_defconfig 1 error
> > > > Errors summary:
> > > > 2 kprobes.c:(.text+0x91f42): undefined reference to `synchronize_rcu_tasks'
> > > > 1 kprobes.c:(.text+0x80dc8): undefined reference to `synchronize_rcu_tasks'
> > > 
> > > Same as v4.9, caused by 98efb31592b4 ("kprobes: Use synchronize_rcu_tasks()
> > >  for optprobe with CONFIG_PREEMPT=y").
> > 
> > Looks to me like they are both missing 7e42776d5ed1f ("rcu: Drive
> > TASKS_RCU directly off of PREEMPT"), which is shown below.
> > 
> > Masami, how would you like to proceed?
> 
> I think the commit 98efb31592b4 is an improvement patch,
> so do not need to pull on 3.18. Maybe 4.14 is easy to pull
> because we just need below patch. but for 3.18, it needs
> more depending patches, doesn't it?

Yeah, this is messy, I've dropped it from 3.18 and 4.9, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-12-07  7:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <5a2843f8.3bb0df0a.2b900.d272@mx.google.com>
2017-12-06 20:56 ` stable-rc/linux-3.18.y build: 184 builds: 3 failed, 181 passed, 3 errors (v3.18.86-23-g635374e30005) Arnd Bergmann
2017-12-06 21:47   ` Paul E. McKenney
2017-12-06 23:30     ` Masami Hiramatsu
2017-12-07  7:54       ` gregkh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.