On Tue, Jul 23, 2019 at 12:12:04AM +0900, Akira Yokosawa wrote: > On Mon, 22 Jul 2019 05:34:07 -0700, Paul E. McKenney wrote: > > On Sun, Jul 21, 2019 at 08:07:11PM +0800, Junchang Wang wrote: > >> Hi Akira, > >> > >> Thanks for the patch. The new scheme worked great as a good example of > >> composing my commits. So, > >> > >> Acked-by: Junchang Wang <junchangwang@xxxxxxxxx> > > > > Thank you both! I have queued and pushed this series, with Junchang's > > ack on this patch. > > Paul, could you also pick up Junchang's other acks on patches 2/7 and 6/7 ? Ah, I didn't see Acked-by on those two. Junchang, you are OK with my adding your Acked-by on those as well? One labor-saving device you can use is something like this: For 1/7, 2/7, and 6/7: Acked-by: Your Name <your@email.address> Thanx, Paul > Thanks, Akira > > > > > Thanx, Paul > > > >> Thanks, > >> --Junchang > >> > >> On Sun, Jul 21, 2019 at 8:02 AM Akira Yokosawa <akiyks@xxxxxxxxx> wrote: > >>> > >>> From 245899f43fd007aa344180c0089515cd90f84db2 Mon Sep 17 00:00:00 2001 > >>> From: Akira Yokosawa <akiyks@xxxxxxxxx> > >>> Date: Sat, 27 Apr 2019 21:04:40 +0900 > >>> Subject: [PATCH 1/7] toyrcu: Convert Listing B.1 to new scheme > >>> > >>> This commit was originally presented to Junchang as an example where > >>> code fragments extracted from two source files under CodeSamples/ are > >>> merged into a code snippet. > >>> > >>> Junchan employed this scheme in commits 686f3f3b721c ("rcu: Use > >>> READ_ONCE() and WRITE_ONCE() for shared variable rcu_gp_ctr"), > >>> a26c1625bb0d ("rcu_qs: Use READ_ONCE() AND WRITE_ONCE() for shared > >>> variable rcu_gp_ctr"), and b9696a4a456f ("rcu_nest: Update description > >>> of rcu_nest.[hc]"). > >>> > >>> Extra vertical space needs to be canceled by the \vspace*{} command > >>> between the two \input{} commands. > >>> \fvset{firstnumber=last} is to continue line numbering. > >>> \fvset{firstnumber=auto} restores the default setting. > >>> > >>> Also tweak positioning option of the listing environment. > >>> > >>> Cc: Junchang Wang <junchangwang@xxxxxxxxx> > >>> Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> > >>> --- > >>> CodeSamples/defer/rcu_lock.c | 2 ++ > >>> CodeSamples/defer/rcu_lock.h | 2 ++ > >>> appendix/toyrcu/toyrcu.tex | 26 ++++---------------------- > >>> 3 files changed, 8 insertions(+), 22 deletions(-) > >>> > >>> diff --git a/CodeSamples/defer/rcu_lock.c b/CodeSamples/defer/rcu_lock.c > >>> index 8d45ac89..08b87fbd 100644 > >>> --- a/CodeSamples/defer/rcu_lock.c > >>> +++ b/CodeSamples/defer/rcu_lock.c > >>> @@ -20,12 +20,14 @@ > >>> > >>> #include "../api.h" > >>> #include "rcu_lock.h" > >>> +//\begin{snippet}[labelbase=ln:defer:rcu_lock:synchronize,commandchars=\\\[\]] > >>> > >>> void synchronize_rcu(void) > >>> { > >>> spin_lock(&rcu_gp_lock); > >>> spin_unlock(&rcu_gp_lock); > >>> } > >>> +//\end{snippet} > >>> > >>> #ifdef TEST > >>> #include "rcutorture.h" > >>> diff --git a/CodeSamples/defer/rcu_lock.h b/CodeSamples/defer/rcu_lock.h > >>> index 224ea0e4..bf6f9b3c 100644 > >>> --- a/CodeSamples/defer/rcu_lock.h > >>> +++ b/CodeSamples/defer/rcu_lock.h > >>> @@ -26,6 +26,7 @@ static void rcu_init(void) > >>> { > >>> } > >>> > >>> +//\begin{snippet}[labelbase=ln:defer:rcu_lock:lock_unlock,commandchars=\\\[\]] > >>> static void rcu_read_lock(void) > >>> { > >>> spin_lock(&rcu_gp_lock); > >>> @@ -35,5 +36,6 @@ static void rcu_read_unlock(void) > >>> { > >>> spin_unlock(&rcu_gp_lock); > >>> } > >>> +//\end{snippet} > >>> > >>> extern void synchronize_rcu(void); > >>> diff --git a/appendix/toyrcu/toyrcu.tex b/appendix/toyrcu/toyrcu.tex > >>> index 0e84b058..d876595b 100644 > >>> --- a/appendix/toyrcu/toyrcu.tex > >>> +++ b/appendix/toyrcu/toyrcu.tex > >>> @@ -30,29 +30,11 @@ provides a summary and a list of desirable RCU properties. > >>> > >>> \section{Lock-Based RCU} > >>> \label{sec:app:toyrcu:Lock-Based RCU} > >>> +\NoIndentAfterThis > >>> > >>> -\begin{listing}[bp] > >>> -{ \scriptsize > >>> -\begin{verbbox} > >>> - 1 static void rcu_read_lock(void) > >>> - 2 { > >>> - 3 spin_lock(&rcu_gp_lock); > >>> - 4 } > >>> - 5 > >>> - 6 static void rcu_read_unlock(void) > >>> - 7 { > >>> - 8 spin_unlock(&rcu_gp_lock); > >>> - 9 } > >>> - 10 > >>> - 11 void synchronize_rcu(void) > >>> - 12 { > >>> - 13 spin_lock(&rcu_gp_lock); > >>> - 14 spin_unlock(&rcu_gp_lock); > >>> - 15 } > >>> -\end{verbbox} > >>> -} > >>> -\centering > >>> -\theverbbox > >>> +\begin{listing}[htbp] > >>> +\input{CodeSamples/defer/rcu_lock@lock_unlock.fcv}\vspace*{-11pt}\fvset{firstnumber=last} > >>> +\input{CodeSamples/defer/rcu_lock@xxxxxxxxxxxxxxx}\fvset{firstnumber=auto} > >>> \caption{Lock-Based RCU Implementation} > >>> \label{lst:app:toyrcu:Lock-Based RCU Implementation} > >>> \end{listing} > >>> -- > >>> 2.17.1 > >>> > >>> > >> > > >