Re: [PATCH] SMPdesign: fix typos

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Nov 17, 2018 at 12:01:11AM +0900, Akira Yokosawa wrote:
> (Cc: Paul's latest address)
> Hi Junchang,
> 
> On 2018/11/16 16:19:57 +0800, Junchang Wang wrote:
> > Signed-off-by: Junchang Wang <junchangwang@xxxxxxxxx>
> > ---
> > Hi list,
> > 
> > There are a few typos in Section Partitioning. Please take a look.
> > 
> > Thanks,
> > --Junchang
> > 
> > --
> >  SMPdesign/SMPdesign.tex | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/SMPdesign/SMPdesign.tex b/SMPdesign/SMPdesign.tex
> > index 7b4f6eb..562c057 100644
> > --- a/SMPdesign/SMPdesign.tex
> > +++ b/SMPdesign/SMPdesign.tex
> > @@ -936,7 +936,7 @@ We could simply assign each CPU one gigabyte of memory, and allow
> >  each CPU to access its own private chunk of memory, without the
> >  need for locking and its complexities and overheads.
> >  Unfortunately, this simple scheme breaks down if an algorithm happens
> > -to have CPU~0 allocate all of the memory and CPU~1 the free it, as
> > +to have CPU~0 allocate all of the memory and CPU~1 free it, as
> 
> I guess Paul's intention was:
> 
> +to have CPU~0 allocate all of the memory and CPU~1 then free it, as
> 
> ???

You are right, that was my intention, but there significant room for
improvement.  Please see below for an updated version of Junchang's
patch.  Thoughts?

> >  would happen in a simple producer-consumer workload.
> >  
> >  The other extreme, code locking, suffers from excessive lock contention
> > @@ -1017,7 +1017,7 @@ smaller than the number of non-\co{NULL} pointers.
> >  The allocation function \co{memblock_alloc()} may be seen in
> >  Listing~\ref{lst:SMPdesign:Allocator-Cache Allocator Function}.
> >  Line~\lnref{pick} picks up the current thread's per-thread pool,
> > -and line~8 check to see if it is empty.
> > +and line~\lnref{chk:empty} checks to see if it is empty.
> 
> Nice catch!

Indeed, thank you both!!!

>         Thanks, Akira
> 
> >  
> >  If so, lines~\lnref{ack}-\lnref{rel} attempt to refill it
> >  from the global pool

------------------------------------------------------------------------

commit 81c18b03d1aa2d3edc1dc28867e1f84413eb31e3
Author: Junchang Wang <junchangwang@xxxxxxxxx>
Date:   Fri Nov 16 16:19:57 2018 +0800

    SMPdesign: Fix typos
    
    Signed-off-by: Junchang Wang <junchangwang@xxxxxxxxx>
    Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxx>
    [ paulmck: Rework to clarify original wording. ]

diff --git a/SMPdesign/SMPdesign.tex b/SMPdesign/SMPdesign.tex
index 7b4f6eb2ba71..fe8f445851e3 100644
--- a/SMPdesign/SMPdesign.tex
+++ b/SMPdesign/SMPdesign.tex
@@ -932,12 +932,11 @@ data ownership to this problem---simply carve up memory so that
 each CPU owns its share.
 For example, suppose that a system with two CPUs has two gigabytes
 of memory (such as the one that I am typing on right now).
-We could simply assign each CPU one gigabyte of memory, and allow
-each CPU to access its own private chunk of memory, without the
-need for locking and its complexities and overheads.
-Unfortunately, this simple scheme breaks down if an algorithm happens
-to have CPU~0 allocate all of the memory and CPU~1 the free it, as
-would happen in a simple producer-consumer workload.
+We could simply assign each CPU one gigabyte of memory, and allow each
+CPU to allocate from its own gigabyte, without the need for locking and
+its complexities and overheads.
+Unfortunately, this scheme fails when CPU~0 only allocates memory and
+CPU~1 only frees it, as happens in simple producer-consumer workloads.
 
 The other extreme, code locking, suffers from excessive lock contention
 and overhead~\cite{McKenney93}.
@@ -1017,7 +1016,7 @@ smaller than the number of non-\co{NULL} pointers.
 The allocation function \co{memblock_alloc()} may be seen in
 Listing~\ref{lst:SMPdesign:Allocator-Cache Allocator Function}.
 Line~\lnref{pick} picks up the current thread's per-thread pool,
-and line~8 check to see if it is empty.
+and line~\lnref{chk:empty} checks to see if it is empty.
 
 If so, lines~\lnref{ack}-\lnref{rel} attempt to refill it
 from the global pool




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux