From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: linux-kernel@vger.kernel.org, mingo@kernel.org,
laijs@cn.fujitsu.com, dipankar@in.ibm.com,
akpm@linux-foundation.org, mathieu.desnoyers@efficios.com,
josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org,
rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com,
dvhart@linux.intel.com, oleg@redhat.com, bobby.prani@gmail.com
Subject: Re: [PATCH tip/core/rcu 15/24] rcu: Directly drive RCU_USER_QS from Kconfig
Date: Thu, 14 May 2015 14:12:25 -0700 [thread overview]
Message-ID: <20150514211224.GL6776@linux.vnet.ibm.com> (raw)
In-Reply-To: <20150514002747.GA7055@lerouge>
On Thu, May 14, 2015 at 02:27:48AM +0200, Frederic Weisbecker wrote:
> On Wed, May 13, 2015 at 10:45:05AM -0700, Paul E. McKenney wrote:
> > On Wed, May 13, 2015 at 02:37:52AM +0200, Frederic Weisbecker wrote:
> > > On Tue, May 12, 2015 at 03:30:45PM -0700, Paul E. McKenney wrote:
> > > > From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
> > > >
> > > > Currently, Kconfig will ask the user whether RCU_USER_QS should be set.
> > > > This is silly because Kconfig already has all the information that it
> > > > needs to set this parameter. This commit therefore directly drives
> > > > the value of RCU_USER_QS via NO_HZ_FULL's "select" statement.
> > > >
> > > > Reported-by: Ingo Molnar <mingo@kernel.org>
> > > > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > > > Cc: Frederic Weisbecker <fweisbec@gmail.com>
> > >
> > > ACK. And we should remove it completely and use NO_HZ_FULL instead.
> > > There won't seem to be more users.
> >
> > Good point! I have queued the patch shown below for 4.3.
> >
> > Thanx, Paul
> >
> > ------------------------------------------------------------------------
> >
> > rcu: Drop RCU_USER_QS in favor of NO_HZ_FULL
> >
> > The RCU_USER_QS Kconfig parameter is now just a synonym for NO_HZ_FULL,
> > so this commit eliminates RCU_USER_QS, replacing all uses with NO_HZ_FULL.
> >
> > Reported-by: Frederic Weisbecker <fweisbec@gmail.com>
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
>
> Excellent! ACK+!
Very good! I applied your Acked-by to both patches, please let me know
if you intended something else.
Thanx, Paul
> Thanks.
>
> >
> > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
> > index 03a899aabd17..18e377b92875 100644
> > --- a/include/linux/rcupdate.h
> > +++ b/include/linux/rcupdate.h
> > @@ -307,7 +307,7 @@ static inline void rcu_sysrq_end(void)
> > }
> > #endif /* #else #ifdef CONFIG_RCU_STALL_COMMON */
> >
> > -#ifdef CONFIG_RCU_USER_QS
> > +#ifdef CONFIG_NO_HZ_FULL
> > void rcu_user_enter(void);
> > void rcu_user_exit(void);
> > #else
> > @@ -315,7 +315,7 @@ static inline void rcu_user_enter(void) { }
> > static inline void rcu_user_exit(void) { }
> > static inline void rcu_user_hooks_switch(struct task_struct *prev,
> > struct task_struct *next) { }
> > -#endif /* CONFIG_RCU_USER_QS */
> > +#endif /* CONFIG_NO_HZ_FULL */
> >
> > #ifdef CONFIG_RCU_NOCB_CPU
> > void rcu_init_nohz(void);
> > diff --git a/init/Kconfig b/init/Kconfig
> > index 4c08197044f1..5b8726c10685 100644
> > --- a/init/Kconfig
> > +++ b/init/Kconfig
> > @@ -537,15 +537,6 @@ config RCU_STALL_COMMON
> > config CONTEXT_TRACKING
> > bool
> >
> > -config RCU_USER_QS
> > - bool
> > - help
> > - This option sets hooks on kernel / userspace boundaries and
> > - puts RCU in extended quiescent state when the CPU runs in
> > - userspace. It means that when a CPU runs in userspace, it is
> > - excluded from the global RCU state machine and thus doesn't
> > - try to keep the timer tick on for RCU.
> > -
> > config CONTEXT_TRACKING_FORCE
> > bool "Force context tracking"
> > depends on CONTEXT_TRACKING
> > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
> > index 7651d7dd982c..012cbee9d354 100644
> > --- a/kernel/rcu/tree.c
> > +++ b/kernel/rcu/tree.c
> > @@ -696,7 +696,7 @@ void rcu_idle_enter(void)
> > }
> > EXPORT_SYMBOL_GPL(rcu_idle_enter);
> >
> > -#ifdef CONFIG_RCU_USER_QS
> > +#ifdef CONFIG_NO_HZ_FULL
> > /**
> > * rcu_user_enter - inform RCU that we are resuming userspace.
> > *
> > @@ -709,7 +709,7 @@ void rcu_user_enter(void)
> > {
> > rcu_eqs_enter(1);
> > }
> > -#endif /* CONFIG_RCU_USER_QS */
> > +#endif /* CONFIG_NO_HZ_FULL */
> >
> > /**
> > * rcu_irq_exit - inform RCU that current CPU is exiting irq towards idle
> > @@ -823,7 +823,7 @@ void rcu_idle_exit(void)
> > }
> > EXPORT_SYMBOL_GPL(rcu_idle_exit);
> >
> > -#ifdef CONFIG_RCU_USER_QS
> > +#ifdef CONFIG_NO_HZ_FULL
> > /**
> > * rcu_user_exit - inform RCU that we are exiting userspace.
> > *
> > @@ -834,7 +834,7 @@ void rcu_user_exit(void)
> > {
> > rcu_eqs_exit(1);
> > }
> > -#endif /* CONFIG_RCU_USER_QS */
> > +#endif /* CONFIG_NO_HZ_FULL */
> >
> > /**
> > * rcu_irq_enter - inform RCU that current CPU is entering irq away from idle
> > diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig
> > index 579ce1b929af..4008d9f95dd7 100644
> > --- a/kernel/time/Kconfig
> > +++ b/kernel/time/Kconfig
> > @@ -92,12 +92,10 @@ config NO_HZ_FULL
> > depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
> > # We need at least one periodic CPU for timekeeping
> > depends on SMP
> > - # RCU_USER_QS dependency
> > depends on HAVE_CONTEXT_TRACKING
> > # VIRT_CPU_ACCOUNTING_GEN dependency
> > depends on HAVE_VIRT_CPU_ACCOUNTING_GEN
> > select NO_HZ_COMMON
> > - select RCU_USER_QS
> > select RCU_NOCB_CPU
> > select VIRT_CPU_ACCOUNTING_GEN
> > select IRQ_WORK
> >
>
next prev parent reply other threads:[~2015-05-14 21:12 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-12 22:30 [PATCH tip/core/rcu 0/24] Initialization/Kconfig updates for 4.2 Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 01/24] rcu: Control grace-period delays directly from value Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 02/24] rcu: Modulate grace-period slow init to normalize delay Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 03/24] rcu: Shut up spurious gcc uninitialized-variable warning Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 04/24] rcu: Panic if RCU tree can not accommodate all CPUs Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 05/24] rcu: Remove superfluous local variable in rcu_init_geometry() Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 06/24] rcu: Cleanup rcu_init_geometry() code and arithmetics Paul E. McKenney
2015-05-13 3:22 ` Steven Rostedt
2015-05-13 13:20 ` Paul E. McKenney
2015-05-14 21:15 ` Alexander Gordeev
2015-05-12 22:30 ` [PATCH tip/core/rcu 07/24] rcu: Simplify rcu_init_geometry() capacity arithmetics Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 08/24] rcu: Limit rcu_state::levelcnt[] to RCU_NUM_LVLS items Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 09/24] rcu: Limit rcu_capacity[] size " Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 10/24] rcu: Remove unnecessary fields from rcu_state structure Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 11/24] rcu: Limit count of static data to the number of RCU levels Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 12/24] rcu: Simplify arithmetic to calculate number of RCU nodes Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 13/24] rcu: Provide diagnostic option to slow down grace-period scans Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 14/24] rcu: Directly drive TASKS_RCU from Kconfig Paul E. McKenney
2015-05-13 13:31 ` Steven Rostedt
2015-05-13 17:14 ` Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 15/24] rcu: Directly drive RCU_USER_QS " Paul E. McKenney
2015-05-13 0:37 ` Frederic Weisbecker
2015-05-13 17:45 ` Paul E. McKenney
2015-05-14 0:27 ` Frederic Weisbecker
2015-05-14 21:12 ` Paul E. McKenney [this message]
2015-05-12 22:30 ` [PATCH tip/core/rcu 16/24] rcu: Convert CONFIG_RCU_FANOUT_EXACT to boot parameter Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 17/24] rcu: Enable diagnostic dump of rcu_node combining tree Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 18/24] rcu: Create RCU_EXPERT Kconfig and hide booleans behind it Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 19/24] rcu: Break dependency of RCU_FANOUT_LEAF on RCU_FANOUT Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 20/24] rcu: Make RCU able to tolerate undefined CONFIG_RCU_FANOUT Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 21/24] rcu: Make RCU able to tolerate undefined CONFIG_RCU_FANOUT_LEAF Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 22/24] rcu: Make RCU able to tolerate undefined CONFIG_RCU_KTHREAD_PRIO Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 23/24] rcu: Remove prompt for RCU implementation Paul E. McKenney
2015-05-12 22:30 ` [PATCH tip/core/rcu 24/24] rcu: Conditionally compile RCU's eqs warnings Paul E. McKenney
2015-05-13 13:46 ` Steven Rostedt
2015-05-13 15:06 ` Paul E. McKenney
2015-06-29 9:39 ` Geert Uytterhoeven
2015-06-29 20:55 ` Paul E. McKenney
2015-06-29 20:58 ` Geert Uytterhoeven
2015-06-30 16:57 ` Paul E. McKenney
2015-05-13 2:59 ` [PATCH tip/core/rcu 01/24] rcu: Control grace-period delays directly from value Steven Rostedt
2015-05-13 17:15 ` Paul E. McKenney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150514211224.GL6776@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=bobby.prani@gmail.com \
--cc=dhowells@redhat.com \
--cc=dipankar@in.ibm.com \
--cc=dvhart@linux.intel.com \
--cc=edumazet@google.com \
--cc=fweisbec@gmail.com \
--cc=josh@joshtriplett.org \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.