(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 ??? > 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! Thanks, Akira > > If so, lines~\lnref{ack}-\lnref{rel} attempt to refill it > from the global pool >