Re: [PATCH, RFC, tip/core/rcu] scalable classic RCU implementation

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Josh Triplett
Date: Friday, August 22, 2008 - 4:29 pm

On Thu, 2008-08-21 at 16:43 -0700, Paul E. McKenney wrote:

Looks great.  A few comments below.


", 2008", here and elsewhere?


Why put these references here rather than in Documentation/RCU?  It
seems easier to keep documentation up to date in one place.  If you
think these represent a good "getting started" set of documents, how
about a Documentation/RCU/ReadTheseFirst with links to them, or how
about linking to them from whatisRCU.txt?


This should get replaced by the revised version you followed up with.


These four fields should use sized types, and preferably unsigned types.


These two should use sized types.


u8 or bool, depending on semantics.  If just a simple flag, how about
bool?


Looks like several whitespace changes occurred here; several of these
lines didn't actually change except in whitespace.

The same comment about sized types applies here, but these fields didn't
actually change in this patch.


Some whitespace changes again here; several of these lines didn't change
except in whitespace.


Why extern and in the header?  I don't see anything else using them.


Might want to document in the commit message that you have tracing
information through RCU_TRACE, and that it applies to non-preemptible
RCU as well now.


...or if attempting to tune for a specific NUMA system.


You might want to give a specific example of a NUMA machine, the
appropriate value to use on that machine, and the result with and
without RCU_FANOUT_EXACT.


It might actually make sense here to do this instead:

ifeq ($(CONFIG_RCU_TRACE),y)
obj-$(CONFIG_CLASSIC_RCU) += rcuclassic_trace.o
obj-$(CONFIG_PREEMPT_RCU) += rcupreempt_trace.o
endif


Same comment as before; maintaining these in a single place seems
easier.


How about making these state structures static, along with removing the
extern in the header?


Indentation mismatch on the comments?


This seems to make force_quiescent_state rather less forceful.


ACCESS_ONCE, like memory barriers, benefits from an accompanying
explanation.


No need to explicitly say "inline"; GCC should do the right thing here.
Same comment applies a couple of other places in your patch.



!! seems unnecessary here.


This comment applies to the original code, but:
You only call __call_rcu twice, in call_rcu and call_rcu_bh.  Both
times, you set head first, then wrap the call with local_irq_save.  How
about moving both into __call_rcu, making call_rcu and call_rcu_bh
one-liners?



static DEFINE_MUTEX(rcuclassic_trace_mutex);
Then you don't need mutex_init later in your init function.


Did you perhaps want PAGE_SIZE?

- Josh Triplett


--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [PATCH, RFC, tip/core/rcu] scalable classic RCU implem ..., Paul E. McKenney, (Fri Aug 22, 10:22 am)
Re: [PATCH, RFC, tip/core/rcu] scalable classic RCU implem ..., Josh Triplett, (Fri Aug 22, 4:29 pm)
Re: [PATCH, RFC, tip/core/rcu] scalable classic RCU implem ..., Paul E. McKenney, (Wed Aug 27, 11:28 am)
Re: [PATCH, RFC, tip/core/rcu] scalable classic RCU implem ..., Paul E. McKenney, (Wed Aug 27, 11:34 am)
Re: [PATCH, RFC, tip/core/rcu] v3 scalable classic RCU imp ..., Paul E. McKenney, (Sat Aug 30, 12:38 pm)
Re: [PATCH, RFC, tip/core/rcu] v3 scalable classic RCU imp ..., Paul E. McKenney, (Sun Aug 31, 10:20 am)
Re: [PATCH, RFC, tip/core/rcu] v3 scalable classic RCU imp ..., Paul E. McKenney, (Sun Aug 31, 10:55 am)
Re: [PATCH, RFC, tip/core/rcu] v3 scalable classic RCU imp ..., Paul E. McKenney, (Sun Aug 31, 12:23 pm)
[PATCH, RFC] v4 scalable classic RCU implementation, Paul E. McKenney, (Fri Sep 5, 8:29 am)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Andrew Morton, (Fri Sep 5, 12:33 pm)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Paul E. McKenney, (Fri Sep 5, 4:04 pm)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Andrew Morton, (Fri Sep 5, 4:52 pm)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Paul E. McKenney, (Fri Sep 5, 9:16 pm)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Manfred Spraul, (Sat Sep 6, 9:37 am)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Paul E. McKenney, (Sun Sep 7, 10:25 am)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Paul E. McKenney, (Mon Sep 15, 9:02 am)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Manfred Spraul, (Tue Sep 16, 9:52 am)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Paul E. McKenney, (Tue Sep 16, 10:30 am)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Manfred Spraul, (Tue Sep 16, 10:48 am)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Paul E. McKenney, (Tue Sep 16, 11:22 am)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Manfred Spraul, (Sun Sep 21, 4:09 am)
Re: [PATCH, RFC] v4 scalable classic RCU implementation, Paul E. McKenney, (Sun Sep 21, 2:14 pm)
[PATCH, RFC] v6 scalable classic RCU implementation, Paul E. McKenney, (Tue Sep 23, 4:53 pm)
Re: [PATCH, RFC] v6 scalable classic RCU implementation, Ingo Molnar, (Thu Sep 25, 12:26 am)
Re: [PATCH, RFC] v6 scalable classic RCU implementation, Ingo Molnar, (Thu Sep 25, 12:29 am)
Re: [PATCH, RFC] v6 scalable classic RCU implementation, Paul E. McKenney, (Thu Sep 25, 7:05 am)
Re: [PATCH, RFC] v6 scalable classic RCU implementation, Paul E. McKenney, (Thu Sep 25, 7:18 am)
[PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Fri Oct 10, 9:09 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Manfred Spraul, (Sun Oct 12, 8:52 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Sun Oct 12, 3:46 pm)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Manfred Spraul, (Mon Oct 13, 11:03 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Tue Oct 14, 6:11 pm)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Manfred Spraul, (Wed Oct 15, 1:13 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Wed Oct 15, 8:26 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Gautham R Shenoy, (Fri Oct 17, 1:34 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Gautham R Shenoy, (Fri Oct 17, 8:35 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Fri Oct 17, 8:43 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Fri Oct 17, 8:46 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Manfred Spraul, (Wed Oct 22, 11:41 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Wed Oct 22, 2:02 pm)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Manfred Spraul, (Wed Oct 22, 2:24 pm)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Mon Oct 27, 9:45 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Manfred Spraul, (Mon Oct 27, 12:48 pm)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Mon Oct 27, 4:52 pm)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Manfred Spraul, (Mon Oct 27, 10:30 pm)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Tue Oct 28, 8:17 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Manfred Spraul, (Tue Oct 28, 10:21 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Tue Oct 28, 10:35 am)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Manfred Spraul, (Sun Nov 2, 1:10 pm)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Mon Nov 3, 1:33 pm)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Manfred Spraul, (Wed Nov 5, 12:48 pm)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Wed Nov 5, 2:27 pm)
[PATCH, RFC] v8 scalable classic RCU implementation, Paul E. McKenney, (Sat Nov 15, 4:20 pm)
Re: [PATCH, RFC] v7 scalable classic RCU implementation, Paul E. McKenney, (Mon Dec 8, 11:42 am)