On 2019/07/23 1:28, Paul E. McKenney wrote: > 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. Umm, I _thought_ I had seen them, but apparently I might have been daydreaming or something :-) Sorry for the noise. Thanks, Akira > > 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 >>>>> >>>>> >>>> >>> >>