Re: [PATCH] SMPdesign: fix typos

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

 



On Sat, Nov 17, 2018 at 5:46 AM Paul E. McKenney <paulmck@xxxxxxxxxxxxx> wrote:
>
> 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?
>

Hi Paul and Akira,

The new patch looks good to me. Thanks a lot for the help.


Thanks,
--Junchang

> > >  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