On Sat, Feb 20, 2016 at 05:52:02PM +0900, Hitoshi Mitake wrote: > This commit a little bit improves the logic of a writer thread. The > new logic lets the writer go back to the original CPU after run_on() > the final CPU. > > Of course it is a trivial improvement and the original two lines > pseudocode is beautiful. If it isn't worth to apply, please ignore it. > > Signed-off-by: Hitoshi Mitake <mitake.hitoshi@xxxxxxxxx> Hello, Hitoshi, Thank you for the submission, but each addition of this sort invites another. For example, you capture the initial CPU, but suppose that the thread was originally bound to a pair of CPUs? Wouldn't you then want to restore the binding to that pair of CPUs? But if you did that, suppose that both of those CPUs went offline while going through the for_each_online_cpu() loop? Wouldn't you need to instead bind to some CPUs that were actually online? And suppose that some other CPU changed the binding of the thread just after you captured the initial binding? Wouldn't you want to reflect that change (give or take CPU hotplug operations) at the end of the loop? And it just gets worse from there. So we need to keep this one simple, which means that I cannot accept this patch. Thanx, Paul > --- > defer/rcuintro.tex | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/defer/rcuintro.tex b/defer/rcuintro.tex > index 03d6e12..135922c 100644 > --- a/defer/rcuintro.tex > +++ b/defer/rcuintro.tex > @@ -166,8 +166,11 @@ quite complex, a toy implementation is exceedingly simple: > \begin{minipage}[t]{\columnwidth} > \scriptsize > \begin{verbatim} > - 1 for_each_online_cpu(cpu) > - 2 run_on(cpu); > + 1 int orig_cpu = smp_processor_id(); > + 2 for_each_online_cpu(cpu) > + 3 run_on(cpu); > + 4 if (orig_cpu != smp_processor_id()) > + 5 run_on(orig_cpu); > \end{verbatim} > \end{minipage} > \vspace{5pt} > -- > 1.9.1 > > -- > To unsubscribe from this list: send the line "unsubscribe perfbook" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe perfbook" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html