All of lore.kernel.org
 help / color / mirror / Atom feed
* Towards second edition
@ 2020-02-23 15:33 Paul E. McKenney
  2020-02-23 16:49 ` Дмитрий Дьяченко
  2020-02-23 23:42 ` Akira Yokosawa
  0 siblings, 2 replies; 10+ messages in thread
From: Paul E. McKenney @ 2020-02-23 15:33 UTC (permalink / raw)
  To: akiyks; +Cc: perfbook

Hello!

I finally found and fixed the rcu_barrier() bug [1], so I should again
be able to devote some big-system test time to redoing performance
results in perfbook.  Once that is done, I expect that it is time for
the second edition.

I might also convert the blank page hiding the solution to the Dining
Philosophers Problem to a quick quiz, but I consider this optional.

Are there any other changes that are needed? [2]

							Thanx, Paul


[1] The fix is at 77abca1c358a ("rcu: Make rcu_barrier() account for
    offline no-CBs CPUs") in -rcu, in case anyone is curious.

[2] Here is a list of some things that I believe can follow the second
    edition:

	Expand lock-free algorithm discussion to include LIFO push,
	illustrating the infamous pointer-zap issue.  (See ISO SC22
	WG21 P1726R3, which should appear in a couple of weeks, for
	more details.)

	Add text describing the Issaquah Challenge.

	Add text describing skiplists, one of the more concurrency
	friendly data structures.

	Add text describing data-race detectors such as KCSAN.  (This needs
	to wait for more Linux-kernel experience.)

	Additional material from todo.txt.  ;-)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Towards second edition
  2020-02-23 15:33 Towards second edition Paul E. McKenney
@ 2020-02-23 16:49 ` Дмитрий Дьяченко
  2020-02-23 18:47   ` Paul E. McKenney
  2020-02-23 23:42 ` Akira Yokosawa
  1 sibling, 1 reply; 10+ messages in thread
From: Дмитрий Дьяченко @ 2020-02-23 16:49 UTC (permalink / raw)
  To: paulmck; +Cc: akiyks, perfbook

[-- Attachment #1: Type: text/plain, Size: 2931 bytes --]

Hello!

I build perfbook sometimes and try build today after read 'Toward second
edition' letter.
I use up-to-day livetex and up-to-day perfbook.

07-feb-2020 build PASS.
Today build FAIL [1].

Thank you,
Dmitry

[1] make
[...]
echo > origpub.tex
latexpand --empty-comments perfbook.tex 1> perfbook_flat.tex 2> /dev/null
sh utilities/extractqqz.sh < perfbook_flat.tex | perl utilities/
qqzreorder.pl > qqz.tex
cat perfbook_flat.tex qqz.tex | sh utilities/extractcontrib.sh > contrib.tex
sh utilities/extractorigpub.sh < perfbook_flat.tex > origpub.tex
sh utilities/runfirstlatex.sh perfbook
pdflatex 1 for perfbook.pdf

LaTeX Warning: Reference `ln:toolsoftrade:Inviting a Store-to-Load
Conversion:l
oad:p' on page 42 undefined on input line 1988.


! Package examplep Error: \PVerb inner delimiter must be brace,
(examplep)                not backslash or control sequence or active char.

See the examplep package documentation for explanation.
Type  H <return>  for immediate help.
 ...

l.1988 ...load:p} fetches \co{p}, but the \qco{if}
                                                   statement on
?
! Emergency stop.
 ...

l.1988 ...load:p} fetches \co{p}, but the \qco{if}
                                                   statement on
Try typing  <return>  to proceed.
----- Fatal latex error, see perfbook.log for details. -----
make: *** [Makefile:183: perfbook.aux] Ошибка 1
Command exited with non-zero status 2

вс, 23 февр. 2020 г. в 18:33, Paul E. McKenney <paulmck@kernel.org>:

> Hello!
>
> I finally found and fixed the rcu_barrier() bug [1], so I should again
> be able to devote some big-system test time to redoing performance
> results in perfbook.  Once that is done, I expect that it is time for
> the second edition.
>
> I might also convert the blank page hiding the solution to the Dining
> Philosophers Problem to a quick quiz, but I consider this optional.
>
> Are there any other changes that are needed? [2]
>
>                                                         Thanx, Paul
>
>
> [1] The fix is at 77abca1c358a ("rcu: Make rcu_barrier() account for
>     offline no-CBs CPUs") in -rcu, in case anyone is curious.
>
> [2] Here is a list of some things that I believe can follow the second
>     edition:
>
>         Expand lock-free algorithm discussion to include LIFO push,
>         illustrating the infamous pointer-zap issue.  (See ISO SC22
>         WG21 P1726R3, which should appear in a couple of weeks, for
>         more details.)
>
>         Add text describing the Issaquah Challenge.
>
>         Add text describing skiplists, one of the more concurrency
>         friendly data structures.
>
>         Add text describing data-race detectors such as KCSAN.  (This needs
>         to wait for more Linux-kernel experience.)
>
>         Additional material from todo.txt.  ;-)
>

[-- Attachment #2: Type: text/html, Size: 4076 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Towards second edition
  2020-02-23 16:49 ` Дмитрий Дьяченко
@ 2020-02-23 18:47   ` Paul E. McKenney
  2020-02-23 20:52     ` Дмитрий Дьяченко
  0 siblings, 1 reply; 10+ messages in thread
From: Paul E. McKenney @ 2020-02-23 18:47 UTC (permalink / raw)
  To: Дмитрий
	Дьяченко
  Cc: akiyks, perfbook

On Sun, Feb 23, 2020 at 07:49:32PM +0300, Дмитрий Дьяченко wrote:
> Hello!
> 
> I build perfbook sometimes and try build today after read 'Toward second
> edition' letter.
> I use up-to-day livetex and up-to-day perfbook.
> 
> 07-feb-2020 build PASS.
> Today build FAIL [1].

Hello, Dmitry,

There was a change in the build system to fix a rendering problem.
Could you please check recent changes to FAQ-BUILD.txt and see if they
apply to you?  It might be necessary for you download epigraph.zip,
depending on what distro version you happen to be using.  (I had to
download it, for example.)

Either way, does "make clean" followed by "make" help?

							Thanx, Paul

> Thank you,
> Dmitry
> 
> [1] make
> [...]
> echo > origpub.tex
> latexpand --empty-comments perfbook.tex 1> perfbook_flat.tex 2> /dev/null
> sh utilities/extractqqz.sh < perfbook_flat.tex | perl utilities/
> qqzreorder.pl > qqz.tex
> cat perfbook_flat.tex qqz.tex | sh utilities/extractcontrib.sh > contrib.tex
> sh utilities/extractorigpub.sh < perfbook_flat.tex > origpub.tex
> sh utilities/runfirstlatex.sh perfbook
> pdflatex 1 for perfbook.pdf
> 
> LaTeX Warning: Reference `ln:toolsoftrade:Inviting a Store-to-Load
> Conversion:l
> oad:p' on page 42 undefined on input line 1988.
> 
> 
> ! Package examplep Error: \PVerb inner delimiter must be brace,
> (examplep)                not backslash or control sequence or active char.
> 
> See the examplep package documentation for explanation.
> Type  H <return>  for immediate help.
>  ...
> 
> l.1988 ...load:p} fetches \co{p}, but the \qco{if}
>                                                    statement on
> ?
> ! Emergency stop.
>  ...
> 
> l.1988 ...load:p} fetches \co{p}, but the \qco{if}
>                                                    statement on
> Try typing  <return>  to proceed.
> ----- Fatal latex error, see perfbook.log for details. -----
> make: *** [Makefile:183: perfbook.aux] Ошибка 1
> Command exited with non-zero status 2
> 
> вс, 23 февр. 2020 г. в 18:33, Paul E. McKenney <paulmck@kernel.org>:
> 
> > Hello!
> >
> > I finally found and fixed the rcu_barrier() bug [1], so I should again
> > be able to devote some big-system test time to redoing performance
> > results in perfbook.  Once that is done, I expect that it is time for
> > the second edition.
> >
> > I might also convert the blank page hiding the solution to the Dining
> > Philosophers Problem to a quick quiz, but I consider this optional.
> >
> > Are there any other changes that are needed? [2]
> >
> >                                                         Thanx, Paul
> >
> >
> > [1] The fix is at 77abca1c358a ("rcu: Make rcu_barrier() account for
> >     offline no-CBs CPUs") in -rcu, in case anyone is curious.
> >
> > [2] Here is a list of some things that I believe can follow the second
> >     edition:
> >
> >         Expand lock-free algorithm discussion to include LIFO push,
> >         illustrating the infamous pointer-zap issue.  (See ISO SC22
> >         WG21 P1726R3, which should appear in a couple of weeks, for
> >         more details.)
> >
> >         Add text describing the Issaquah Challenge.
> >
> >         Add text describing skiplists, one of the more concurrency
> >         friendly data structures.
> >
> >         Add text describing data-race detectors such as KCSAN.  (This needs
> >         to wait for more Linux-kernel experience.)
> >
> >         Additional material from todo.txt.  ;-)
> >

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Towards second edition
  2020-02-23 18:47   ` Paul E. McKenney
@ 2020-02-23 20:52     ` Дмитрий Дьяченко
  2020-02-23 22:59       ` Akira Yokosawa
  0 siblings, 1 reply; 10+ messages in thread
From: Дмитрий Дьяченко @ 2020-02-23 20:52 UTC (permalink / raw)
  To: paulmck; +Cc: akiyks, perfbook

Hello, Paul,

I check FAQ-BUILD.txt and find Q. 10.A
" ... and TeX Live releases prior to 2020 (epigraph)".

I update livetex today and probably I have the latest epigraph' version
./texlive/texmf-dist/tex/latex/epigraph:
total 8
-rw-r--r--. 1 dima dima 4602 Jan  3 01:06 epigraph.sty

To avoid make clean/make problems I
-- rm build-perfbook
-- update perfbook
-- copy perfbook into build-perfbook
-- run make in clean dir.

I use Fedora 31 up-to-day, x86_64.

I 'll try tomorrow to find the first commit after 07 feb with errors.

Thank you,
Dmitry

вс, 23 февр. 2020 г. в 21:47, Paul E. McKenney <paulmck@kernel.org>:
>
> On Sun, Feb 23, 2020 at 07:49:32PM +0300, Дмитрий Дьяченко wrote:
> > Hello!
> >
> > I build perfbook sometimes and try build today after read 'Toward second
> > edition' letter.
> > I use up-to-day livetex and up-to-day perfbook.
> >
> > 07-feb-2020 build PASS.
> > Today build FAIL [1].
>
> Hello, Dmitry,
>
> There was a change in the build system to fix a rendering problem.
> Could you please check recent changes to FAQ-BUILD.txt and see if they
> apply to you?  It might be necessary for you download epigraph.zip,
> depending on what distro version you happen to be using.  (I had to
> download it, for example.)
>
> Either way, does "make clean" followed by "make" help?
>
>                                                         Thanx, Paul
>
> > Thank you,
> > Dmitry
> >
> > [1] make
> > [...]
> > echo > origpub.tex
> > latexpand --empty-comments perfbook.tex 1> perfbook_flat.tex 2> /dev/null
> > sh utilities/extractqqz.sh < perfbook_flat.tex | perl utilities/
> > qqzreorder.pl > qqz.tex
> > cat perfbook_flat.tex qqz.tex | sh utilities/extractcontrib.sh > contrib.tex
> > sh utilities/extractorigpub.sh < perfbook_flat.tex > origpub.tex
> > sh utilities/runfirstlatex.sh perfbook
> > pdflatex 1 for perfbook.pdf
> >
> > LaTeX Warning: Reference `ln:toolsoftrade:Inviting a Store-to-Load
> > Conversion:l
> > oad:p' on page 42 undefined on input line 1988.
> >
> >
> > ! Package examplep Error: \PVerb inner delimiter must be brace,
> > (examplep)                not backslash or control sequence or active char.
> >
> > See the examplep package documentation for explanation.
> > Type  H <return>  for immediate help.
> >  ...
> >
> > l.1988 ...load:p} fetches \co{p}, but the \qco{if}
> >                                                    statement on
> > ?
> > ! Emergency stop.
> >  ...
> >
> > l.1988 ...load:p} fetches \co{p}, but the \qco{if}
> >                                                    statement on
> > Try typing  <return>  to proceed.
> > ----- Fatal latex error, see perfbook.log for details. -----
> > make: *** [Makefile:183: perfbook.aux] Ошибка 1
> > Command exited with non-zero status 2
> >
> > вс, 23 февр. 2020 г. в 18:33, Paul E. McKenney <paulmck@kernel.org>:
> >
> > > Hello!
> > >
> > > I finally found and fixed the rcu_barrier() bug [1], so I should again
> > > be able to devote some big-system test time to redoing performance
> > > results in perfbook.  Once that is done, I expect that it is time for
> > > the second edition.
> > >
> > > I might also convert the blank page hiding the solution to the Dining
> > > Philosophers Problem to a quick quiz, but I consider this optional.
> > >
> > > Are there any other changes that are needed? [2]
> > >
> > >                                                         Thanx, Paul
> > >
> > >
> > > [1] The fix is at 77abca1c358a ("rcu: Make rcu_barrier() account for
> > >     offline no-CBs CPUs") in -rcu, in case anyone is curious.
> > >
> > > [2] Here is a list of some things that I believe can follow the second
> > >     edition:
> > >
> > >         Expand lock-free algorithm discussion to include LIFO push,
> > >         illustrating the infamous pointer-zap issue.  (See ISO SC22
> > >         WG21 P1726R3, which should appear in a couple of weeks, for
> > >         more details.)
> > >
> > >         Add text describing the Issaquah Challenge.
> > >
> > >         Add text describing skiplists, one of the more concurrency
> > >         friendly data structures.
> > >
> > >         Add text describing data-race detectors such as KCSAN.  (This needs
> > >         to wait for more Linux-kernel experience.)
> > >
> > >         Additional material from todo.txt.  ;-)
> > >

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Towards second edition
  2020-02-23 20:52     ` Дмитрий Дьяченко
@ 2020-02-23 22:59       ` Akira Yokosawa
  2020-02-24  9:34         ` Дмитрий Дьяченко
  0 siblings, 1 reply; 10+ messages in thread
From: Akira Yokosawa @ 2020-02-23 22:59 UTC (permalink / raw)
  To: Дмитрий
	Дьяченко
  Cc: paulmck, perfbook

Hi Dmitry,

On Sun, 23 Feb 2020 23:52:25 +0300, Дмитрий Дьяченко wrote:
> Hello, Paul,
> 
> I check FAQ-BUILD.txt and find Q. 10.A
> " ... and TeX Live releases prior to 2020 (epigraph)".
> 
> I update livetex today and probably I have the latest epigraph' version
> ./texlive/texmf-dist/tex/latex/epigraph:
> total 8
> -rw-r--r--. 1 dima dima 4602 Jan  3 01:06 epigraph.sty

So, you are using upstream TeX Live 2019, not the one distributed by
Fedora.

Due to the fairly massive updates in LaTeX base package to be released
in TeX Live 2020, current upstream TeX Live lost compatibility with
the "examplep" package.

I contacted the author of the package about this issue, but have not
heard from him yet.

As a matter of fact, I have a patch set to resolve the issue in case
the breakage persists. My thought was to submit it if Ubuntu/Fedora
picks up the broken state of TeX Live in the next release.

Now that you have encountered the issue, I'm submitting it for you
to test.

        Thanks, Akira

> 
> To avoid make clean/make problems I
> -- rm build-perfbook
> -- update perfbook
> -- copy perfbook into build-perfbook
> -- run make in clean dir.
> 
> I use Fedora 31 up-to-day, x86_64.
> 
> I 'll try tomorrow to find the first commit after 07 feb with errors.
> 
> Thank you,
> Dmitry
> 
> вс, 23 февр. 2020 г. в 21:47, Paul E. McKenney <paulmck@kernel.org>:
>>
>> On Sun, Feb 23, 2020 at 07:49:32PM +0300, Дмитрий Дьяченко wrote:
>>> Hello!
>>>
>>> I build perfbook sometimes and try build today after read 'Toward second
>>> edition' letter.
>>> I use up-to-day livetex and up-to-day perfbook.
>>>
>>> 07-feb-2020 build PASS.
>>> Today build FAIL [1].
>>
>> Hello, Dmitry,
>>
>> There was a change in the build system to fix a rendering problem.
>> Could you please check recent changes to FAQ-BUILD.txt and see if they
>> apply to you?  It might be necessary for you download epigraph.zip,
>> depending on what distro version you happen to be using.  (I had to
>> download it, for example.)
>>
>> Either way, does "make clean" followed by "make" help?
>>
>>                                                         Thanx, Paul
>>
>>> Thank you,
>>> Dmitry
>>>
>>> [1] make
>>> [...]
>>> echo > origpub.tex
>>> latexpand --empty-comments perfbook.tex 1> perfbook_flat.tex 2> /dev/null
>>> sh utilities/extractqqz.sh < perfbook_flat.tex | perl utilities/
>>> qqzreorder.pl > qqz.tex
>>> cat perfbook_flat.tex qqz.tex | sh utilities/extractcontrib.sh > contrib.tex
>>> sh utilities/extractorigpub.sh < perfbook_flat.tex > origpub.tex
>>> sh utilities/runfirstlatex.sh perfbook
>>> pdflatex 1 for perfbook.pdf
>>>
>>> LaTeX Warning: Reference `ln:toolsoftrade:Inviting a Store-to-Load
>>> Conversion:l
>>> oad:p' on page 42 undefined on input line 1988.
>>>
>>>
>>> ! Package examplep Error: \PVerb inner delimiter must be brace,
>>> (examplep)                not backslash or control sequence or active char.
>>>
>>> See the examplep package documentation for explanation.
>>> Type  H <return>  for immediate help.
>>>  ...
>>>
>>> l.1988 ...load:p} fetches \co{p}, but the \qco{if}
>>>                                                    statement on
>>> ?
>>> ! Emergency stop.
>>>  ...
>>>
>>> l.1988 ...load:p} fetches \co{p}, but the \qco{if}
>>>                                                    statement on
>>> Try typing  <return>  to proceed.
>>> ----- Fatal latex error, see perfbook.log for details. -----
>>> make: *** [Makefile:183: perfbook.aux] Ошибка 1
>>> Command exited with non-zero status 2
>>>
>>> вс, 23 февр. 2020 г. в 18:33, Paul E. McKenney <paulmck@kernel.org>:
>>>
>>>> Hello!
>>>>
>>>> I finally found and fixed the rcu_barrier() bug [1], so I should again
>>>> be able to devote some big-system test time to redoing performance
>>>> results in perfbook.  Once that is done, I expect that it is time for
>>>> the second edition.
>>>>
>>>> I might also convert the blank page hiding the solution to the Dining
>>>> Philosophers Problem to a quick quiz, but I consider this optional.
>>>>
>>>> Are there any other changes that are needed? [2]
>>>>
>>>>                                                         Thanx, Paul
>>>>
>>>>
>>>> [1] The fix is at 77abca1c358a ("rcu: Make rcu_barrier() account for
>>>>     offline no-CBs CPUs") in -rcu, in case anyone is curious.
>>>>
>>>> [2] Here is a list of some things that I believe can follow the second
>>>>     edition:
>>>>
>>>>         Expand lock-free algorithm discussion to include LIFO push,
>>>>         illustrating the infamous pointer-zap issue.  (See ISO SC22
>>>>         WG21 P1726R3, which should appear in a couple of weeks, for
>>>>         more details.)
>>>>
>>>>         Add text describing the Issaquah Challenge.
>>>>
>>>>         Add text describing skiplists, one of the more concurrency
>>>>         friendly data structures.
>>>>
>>>>         Add text describing data-race detectors such as KCSAN.  (This needs
>>>>         to wait for more Linux-kernel experience.)
>>>>
>>>>         Additional material from todo.txt.  ;-)
>>>>


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Towards second edition
  2020-02-23 15:33 Towards second edition Paul E. McKenney
  2020-02-23 16:49 ` Дмитрий Дьяченко
@ 2020-02-23 23:42 ` Akira Yokosawa
  2020-02-24  2:45   ` Paul E. McKenney
  1 sibling, 1 reply; 10+ messages in thread
From: Akira Yokosawa @ 2020-02-23 23:42 UTC (permalink / raw)
  To: paulmck; +Cc: perfbook, Akira Yokosawa

On 2020/02/24 0:33, Paul E. McKenney wrote:
> Hello!
> 
> I finally found and fixed the rcu_barrier() bug [1], so I should again
> be able to devote some big-system test time to redoing performance
> results in perfbook.  Once that is done, I expect that it is time for
> the second edition.
> 
> I might also convert the blank page hiding the solution to the Dining
> Philosophers Problem to a quick quiz, but I consider this optional.
> 
> Are there any other changes that are needed? [2]

In response to Junchang's (off the list) proposal, I noticed that
Figure 10.27 needs update to reflect the change in the code done
in early 2019.

Can you update it?

The change simplified the lookup side, but doubled the cost of
updates during resizing. So it is likely the discussion in the text
also needs update.

        Thanks, Akira

> 
> 							Thanx, Paul
> 
> 
> [1] The fix is at 77abca1c358a ("rcu: Make rcu_barrier() account for
>     offline no-CBs CPUs") in -rcu, in case anyone is curious.
> 
> [2] Here is a list of some things that I believe can follow the second
>     edition:
> 
> 	Expand lock-free algorithm discussion to include LIFO push,
> 	illustrating the infamous pointer-zap issue.  (See ISO SC22
> 	WG21 P1726R3, which should appear in a couple of weeks, for
> 	more details.)
> 
> 	Add text describing the Issaquah Challenge.
> 
> 	Add text describing skiplists, one of the more concurrency
> 	friendly data structures.
> 
> 	Add text describing data-race detectors such as KCSAN.  (This needs
> 	to wait for more Linux-kernel experience.)
> 
> 	Additional material from todo.txt.  ;-)
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Towards second edition
  2020-02-23 23:42 ` Akira Yokosawa
@ 2020-02-24  2:45   ` Paul E. McKenney
  2020-02-25  3:30     ` Junchang Wang
  0 siblings, 1 reply; 10+ messages in thread
From: Paul E. McKenney @ 2020-02-24  2:45 UTC (permalink / raw)
  To: Akira Yokosawa; +Cc: perfbook

On Mon, Feb 24, 2020 at 08:42:09AM +0900, Akira Yokosawa wrote:
> On 2020/02/24 0:33, Paul E. McKenney wrote:
> > Hello!
> > 
> > I finally found and fixed the rcu_barrier() bug [1], so I should again
> > be able to devote some big-system test time to redoing performance
> > results in perfbook.  Once that is done, I expect that it is time for
> > the second edition.
> > 
> > I might also convert the blank page hiding the solution to the Dining
> > Philosophers Problem to a quick quiz, but I consider this optional.
> > 
> > Are there any other changes that are needed? [2]
> 
> In response to Junchang's (off the list) proposal, I noticed that
> Figure 10.27 needs update to reflect the change in the code done
> in early 2019.
> 
> Can you update it?
> 
> The change simplified the lookup side, but doubled the cost of
> updates during resizing. So it is likely the discussion in the text
> also needs update.

I will update this when rerunning on the large system in any case,
but thank you for calling my attention to this.  Yes, it does need
to be fixed.  (My problem in early 2019 was not having access to
a large system, now solved!)

							Thanx, Paul

>         Thanks, Akira
> 
> > 
> > 							Thanx, Paul
> > 
> > 
> > [1] The fix is at 77abca1c358a ("rcu: Make rcu_barrier() account for
> >     offline no-CBs CPUs") in -rcu, in case anyone is curious.
> > 
> > [2] Here is a list of some things that I believe can follow the second
> >     edition:
> > 
> > 	Expand lock-free algorithm discussion to include LIFO push,
> > 	illustrating the infamous pointer-zap issue.  (See ISO SC22
> > 	WG21 P1726R3, which should appear in a couple of weeks, for
> > 	more details.)
> > 
> > 	Add text describing the Issaquah Challenge.
> > 
> > 	Add text describing skiplists, one of the more concurrency
> > 	friendly data structures.
> > 
> > 	Add text describing data-race detectors such as KCSAN.  (This needs
> > 	to wait for more Linux-kernel experience.)
> > 
> > 	Additional material from todo.txt.  ;-)
> > 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Towards second edition
  2020-02-23 22:59       ` Akira Yokosawa
@ 2020-02-24  9:34         ` Дмитрий Дьяченко
  0 siblings, 0 replies; 10+ messages in thread
From: Дмитрий Дьяченко @ 2020-02-24  9:34 UTC (permalink / raw)
  To: Akira Yokosawa; +Cc: paulmck, perfbook

Hi Akira,

279eca4cc1debdfe5661ad98ed387dc85740c43e build PASS.
thank you.

Dmitry

пн, 24 февр. 2020 г. в 01:59, Akira Yokosawa <akiyks@gmail.com>:
>
> Hi Dmitry,
>
> On Sun, 23 Feb 2020 23:52:25 +0300, Дмитрий Дьяченко wrote:
> > Hello, Paul,
> >
> > I check FAQ-BUILD.txt and find Q. 10.A
> > " ... and TeX Live releases prior to 2020 (epigraph)".
> >
> > I update livetex today and probably I have the latest epigraph' version
> > ./texlive/texmf-dist/tex/latex/epigraph:
> > total 8
> > -rw-r--r--. 1 dima dima 4602 Jan  3 01:06 epigraph.sty
>
> So, you are using upstream TeX Live 2019, not the one distributed by
> Fedora.
>
> Due to the fairly massive updates in LaTeX base package to be released
> in TeX Live 2020, current upstream TeX Live lost compatibility with
> the "examplep" package.
>
> I contacted the author of the package about this issue, but have not
> heard from him yet.
>
> As a matter of fact, I have a patch set to resolve the issue in case
> the breakage persists. My thought was to submit it if Ubuntu/Fedora
> picks up the broken state of TeX Live in the next release.
>
> Now that you have encountered the issue, I'm submitting it for you
> to test.
>
>         Thanks, Akira
>
> >
> > To avoid make clean/make problems I
> > -- rm build-perfbook
> > -- update perfbook
> > -- copy perfbook into build-perfbook
> > -- run make in clean dir.
> >
> > I use Fedora 31 up-to-day, x86_64.
> >
> > I 'll try tomorrow to find the first commit after 07 feb with errors.
> >
> > Thank you,
> > Dmitry
> >
> > вс, 23 февр. 2020 г. в 21:47, Paul E. McKenney <paulmck@kernel.org>:
> >>
> >> On Sun, Feb 23, 2020 at 07:49:32PM +0300, Дмитрий Дьяченко wrote:
> >>> Hello!
> >>>
> >>> I build perfbook sometimes and try build today after read 'Toward second
> >>> edition' letter.
> >>> I use up-to-day livetex and up-to-day perfbook.
> >>>
> >>> 07-feb-2020 build PASS.
> >>> Today build FAIL [1].
> >>
> >> Hello, Dmitry,
> >>
> >> There was a change in the build system to fix a rendering problem.
> >> Could you please check recent changes to FAQ-BUILD.txt and see if they
> >> apply to you?  It might be necessary for you download epigraph.zip,
> >> depending on what distro version you happen to be using.  (I had to
> >> download it, for example.)
> >>
> >> Either way, does "make clean" followed by "make" help?
> >>
> >>                                                         Thanx, Paul
> >>
> >>> Thank you,
> >>> Dmitry
> >>>
> >>> [1] make
> >>> [...]
> >>> echo > origpub.tex
> >>> latexpand --empty-comments perfbook.tex 1> perfbook_flat.tex 2> /dev/null
> >>> sh utilities/extractqqz.sh < perfbook_flat.tex | perl utilities/
> >>> qqzreorder.pl > qqz.tex
> >>> cat perfbook_flat.tex qqz.tex | sh utilities/extractcontrib.sh > contrib.tex
> >>> sh utilities/extractorigpub.sh < perfbook_flat.tex > origpub.tex
> >>> sh utilities/runfirstlatex.sh perfbook
> >>> pdflatex 1 for perfbook.pdf
> >>>
> >>> LaTeX Warning: Reference `ln:toolsoftrade:Inviting a Store-to-Load
> >>> Conversion:l
> >>> oad:p' on page 42 undefined on input line 1988.
> >>>
> >>>
> >>> ! Package examplep Error: \PVerb inner delimiter must be brace,
> >>> (examplep)                not backslash or control sequence or active char.
> >>>
> >>> See the examplep package documentation for explanation.
> >>> Type  H <return>  for immediate help.
> >>>  ...
> >>>
> >>> l.1988 ...load:p} fetches \co{p}, but the \qco{if}
> >>>                                                    statement on
> >>> ?
> >>> ! Emergency stop.
> >>>  ...
> >>>
> >>> l.1988 ...load:p} fetches \co{p}, but the \qco{if}
> >>>                                                    statement on
> >>> Try typing  <return>  to proceed.
> >>> ----- Fatal latex error, see perfbook.log for details. -----
> >>> make: *** [Makefile:183: perfbook.aux] Ошибка 1
> >>> Command exited with non-zero status 2
> >>>
> >>> вс, 23 февр. 2020 г. в 18:33, Paul E. McKenney <paulmck@kernel.org>:
> >>>
> >>>> Hello!
> >>>>
> >>>> I finally found and fixed the rcu_barrier() bug [1], so I should again
> >>>> be able to devote some big-system test time to redoing performance
> >>>> results in perfbook.  Once that is done, I expect that it is time for
> >>>> the second edition.
> >>>>
> >>>> I might also convert the blank page hiding the solution to the Dining
> >>>> Philosophers Problem to a quick quiz, but I consider this optional.
> >>>>
> >>>> Are there any other changes that are needed? [2]
> >>>>
> >>>>                                                         Thanx, Paul
> >>>>
> >>>>
> >>>> [1] The fix is at 77abca1c358a ("rcu: Make rcu_barrier() account for
> >>>>     offline no-CBs CPUs") in -rcu, in case anyone is curious.
> >>>>
> >>>> [2] Here is a list of some things that I believe can follow the second
> >>>>     edition:
> >>>>
> >>>>         Expand lock-free algorithm discussion to include LIFO push,
> >>>>         illustrating the infamous pointer-zap issue.  (See ISO SC22
> >>>>         WG21 P1726R3, which should appear in a couple of weeks, for
> >>>>         more details.)
> >>>>
> >>>>         Add text describing the Issaquah Challenge.
> >>>>
> >>>>         Add text describing skiplists, one of the more concurrency
> >>>>         friendly data structures.
> >>>>
> >>>>         Add text describing data-race detectors such as KCSAN.  (This needs
> >>>>         to wait for more Linux-kernel experience.)
> >>>>
> >>>>         Additional material from todo.txt.  ;-)
> >>>>
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Towards second edition
  2020-02-24  2:45   ` Paul E. McKenney
@ 2020-02-25  3:30     ` Junchang Wang
  2020-02-25  3:58       ` Paul E. McKenney
  0 siblings, 1 reply; 10+ messages in thread
From: Junchang Wang @ 2020-02-25  3:30 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: Akira Yokosawa, perfbook

On Sun, Feb 23, 2020 at 06:45:49PM -0800, Paul E. McKenney wrote:
>On Mon, Feb 24, 2020 at 08:42:09AM +0900, Akira Yokosawa wrote:
>> On 2020/02/24 0:33, Paul E. McKenney wrote:
>> > Hello!
>> > 
>> > I finally found and fixed the rcu_barrier() bug [1], so I should again
>> > be able to devote some big-system test time to redoing performance
>> > results in perfbook.  Once that is done, I expect that it is time for
>> > the second edition.
>> > 
>> > I might also convert the blank page hiding the solution to the Dining
>> > Philosophers Problem to a quick quiz, but I consider this optional.
>> > 
>> > Are there any other changes that are needed? [2]
>> 
>> In response to Junchang's (off the list) proposal, I noticed that
>> Figure 10.27 needs update to reflect the change in the code done
>> in early 2019.
>> 
>> Can you update it?
>> 
>> The change simplified the lookup side, but doubled the cost of
>> updates during resizing. So it is likely the discussion in the text
>> also needs update.
>
>I will update this when rerunning on the large system in any case,
>but thank you for calling my attention to this.  Yes, it does need
>to be fixed.  (My problem in early 2019 was not having access to
>a large system, now solved!)
>

Hi Paul and Akira,

I think you are discussing Figure 10.17 (Overhead of Resizing Hash
Tables Between 1024 ...). Is that right?

Here is a comment on this performance evaluation. Test framework
hashtorture.h indirectly controls the number of elements in a hash table
(and the average load factor) by inserting nupdaters*elperupdater/2
elements before running a test, such that U = nupdaters*elperupdater,
where U is the size of the pool of all of the test elements.  This
approach worked well for old machines. One thing worth noting is that U
could be too small for currently available servers which typically have
larger Last Level Caches of dozens of megabytes. For example, the LLC of
the E5 CPU I used to evaluate rehash can perfectly hold 131,072*2
elements, and hence lookup operations barely reach the memory (The Linux
perf reports close to zero cache misses.) Update/resize operations
update some elements and invalidate some cachelines, but it seems the
hardware prefetcher works well in this case, given that the test set U
is relatively small.

If we want to test the hash algorithm in an environment where lookup
operations may need to fetch data from memory, U should be set to a much
bigger number (e.g., 10M). But a bigger U means a bigger number of
pre-inserted elements if the above mentioned approach is used. So in my
experiments, I extended hashtorture.h and broke the relationship between
these two numbers. Please let me know if there are any other solutions.

But like you said, the code and the evaluation figure should be
simplified for a textbook. So I think it's reasonable that you still use
the existing approach, but the comment may worth being mentioned in the
perfbook to better explain your experimental result.


Thanks,
--Junchang


>							Thanx, Paul
>
>>         Thanks, Akira
>> 
>> > 
>> > 							Thanx, Paul
>> > 
>> > 
>> > [1] The fix is at 77abca1c358a ("rcu: Make rcu_barrier() account for
>> >     offline no-CBs CPUs") in -rcu, in case anyone is curious.
>> > 
>> > [2] Here is a list of some things that I believe can follow the second
>> >     edition:
>> > 
>> > 	Expand lock-free algorithm discussion to include LIFO push,
>> > 	illustrating the infamous pointer-zap issue.  (See ISO SC22
>> > 	WG21 P1726R3, which should appear in a couple of weeks, for
>> > 	more details.)
>> > 
>> > 	Add text describing the Issaquah Challenge.
>> > 
>> > 	Add text describing skiplists, one of the more concurrency
>> > 	friendly data structures.
>> > 
>> > 	Add text describing data-race detectors such as KCSAN.  (This needs
>> > 	to wait for more Linux-kernel experience.)
>> > 
>> > 	Additional material from todo.txt.  ;-)
>> > 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Towards second edition
  2020-02-25  3:30     ` Junchang Wang
@ 2020-02-25  3:58       ` Paul E. McKenney
  0 siblings, 0 replies; 10+ messages in thread
From: Paul E. McKenney @ 2020-02-25  3:58 UTC (permalink / raw)
  To: Junchang Wang; +Cc: Akira Yokosawa, perfbook

On Tue, Feb 25, 2020 at 11:30:57AM +0800, Junchang Wang wrote:
> On Sun, Feb 23, 2020 at 06:45:49PM -0800, Paul E. McKenney wrote:
> >On Mon, Feb 24, 2020 at 08:42:09AM +0900, Akira Yokosawa wrote:
> >> On 2020/02/24 0:33, Paul E. McKenney wrote:
> >> > Hello!
> >> > 
> >> > I finally found and fixed the rcu_barrier() bug [1], so I should again
> >> > be able to devote some big-system test time to redoing performance
> >> > results in perfbook.  Once that is done, I expect that it is time for
> >> > the second edition.
> >> > 
> >> > I might also convert the blank page hiding the solution to the Dining
> >> > Philosophers Problem to a quick quiz, but I consider this optional.
> >> > 
> >> > Are there any other changes that are needed? [2]
> >> 
> >> In response to Junchang's (off the list) proposal, I noticed that
> >> Figure 10.27 needs update to reflect the change in the code done
> >> in early 2019.
> >> 
> >> Can you update it?
> >> 
> >> The change simplified the lookup side, but doubled the cost of
> >> updates during resizing. So it is likely the discussion in the text
> >> also needs update.
> >
> >I will update this when rerunning on the large system in any case,
> >but thank you for calling my attention to this.  Yes, it does need
> >to be fixed.  (My problem in early 2019 was not having access to
> >a large system, now solved!)
> >
> 
> Hi Paul and Akira,
> 
> I think you are discussing Figure 10.17 (Overhead of Resizing Hash
> Tables Between 1024 ...). Is that right?
> 
> Here is a comment on this performance evaluation. Test framework
> hashtorture.h indirectly controls the number of elements in a hash table
> (and the average load factor) by inserting nupdaters*elperupdater/2
> elements before running a test, such that U = nupdaters*elperupdater,
> where U is the size of the pool of all of the test elements.  This
> approach worked well for old machines. One thing worth noting is that U
> could be too small for currently available servers which typically have
> larger Last Level Caches of dozens of megabytes. For example, the LLC of
> the E5 CPU I used to evaluate rehash can perfectly hold 131,072*2
> elements, and hence lookup operations barely reach the memory (The Linux
> perf reports close to zero cache misses.) Update/resize operations
> update some elements and invalidate some cachelines, but it seems the
> hardware prefetcher works well in this case, given that the test set U
> is relatively small.
> 
> If we want to test the hash algorithm in an environment where lookup
> operations may need to fetch data from memory, U should be set to a much
> bigger number (e.g., 10M). But a bigger U means a bigger number of
> pre-inserted elements if the above mentioned approach is used. So in my
> experiments, I extended hashtorture.h and broke the relationship between
> these two numbers. Please let me know if there are any other solutions.
> 
> But like you said, the code and the evaluation figure should be
> simplified for a textbook. So I think it's reasonable that you still use
> the existing approach, but the comment may worth being mentioned in the
> perfbook to better explain your experimental result.

Here is hoping that you are not increasing the hash-table per-bucket
load factor as you increase the number of CPUs, as one unfortunate recent
paper did.  Who is reviewing these things, anyway???  ;-)

							Thanx, Paul

> Thanks,
> --Junchang
> 
> 
> >							Thanx, Paul
> >
> >>         Thanks, Akira
> >> 
> >> > 
> >> > 							Thanx, Paul
> >> > 
> >> > 
> >> > [1] The fix is at 77abca1c358a ("rcu: Make rcu_barrier() account for
> >> >     offline no-CBs CPUs") in -rcu, in case anyone is curious.
> >> > 
> >> > [2] Here is a list of some things that I believe can follow the second
> >> >     edition:
> >> > 
> >> > 	Expand lock-free algorithm discussion to include LIFO push,
> >> > 	illustrating the infamous pointer-zap issue.  (See ISO SC22
> >> > 	WG21 P1726R3, which should appear in a couple of weeks, for
> >> > 	more details.)
> >> > 
> >> > 	Add text describing the Issaquah Challenge.
> >> > 
> >> > 	Add text describing skiplists, one of the more concurrency
> >> > 	friendly data structures.
> >> > 
> >> > 	Add text describing data-race detectors such as KCSAN.  (This needs
> >> > 	to wait for more Linux-kernel experience.)
> >> > 
> >> > 	Additional material from todo.txt.  ;-)
> >> > 

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-02-25  3:58 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-23 15:33 Towards second edition Paul E. McKenney
2020-02-23 16:49 ` Дмитрий Дьяченко
2020-02-23 18:47   ` Paul E. McKenney
2020-02-23 20:52     ` Дмитрий Дьяченко
2020-02-23 22:59       ` Akira Yokosawa
2020-02-24  9:34         ` Дмитрий Дьяченко
2020-02-23 23:42 ` Akira Yokosawa
2020-02-24  2:45   ` Paul E. McKenney
2020-02-25  3:30     ` Junchang Wang
2020-02-25  3:58       ` Paul E. McKenney

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.