Re: [PATCH -perfbook] whymb: Fix description of compiler mischief

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

 



Hi, all

> Motohiro, do you mind if I submit patches to Paul on behalf of

Certainly, please submit patches.

While I was working on Japanese translation, I felt something odd with this
smp_mb sample code, but I did not report one to upstream because I was
not so sure.
I just left a comment on my translation.

It is my great pleasure that someone reads my translation so seriously, Akira.

Thanks again for great book, Paul and others!

--
Motohiro Kanda

2020-12-02 23:50 GMT+09:00, Akira Yokosawa <akiyks@xxxxxxxxx>:
> From 89ab8426f9821b6a8bf86e9d4f7eb596e0cfed73 Mon Sep 17 00:00:00 2001
> From: Akira Yokosawa <akiyks@xxxxxxxxx>
> Date: Wed, 2 Dec 2020 07:35:08 +0900
> Subject: [PATCH -perfbook] whymb: Fix description of compiler mischief
>
> In this code snippet, the assertion can not fire due to different
> reasons.
> When bar() observes b == 1, the smp_mb() assures a == 1.
> When bar() observes b == 0, the while loop will loop forever and
> the assertion can't be reached.
>
> This was pointed out by Motohiro Kanda in his Japanese translation
> of perfbook [1].
>
> [1]:
> https://sites.google.com/site/kandamotohiro/perfbook-d/perfbookappendixf10
>
> Cc: Motohiro Kanda <kanda.motohiro@xxxxxxxxx>
> Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx>
> ---
> Hi Paul,
>
> (Cc: Motohiro)
>
> Looks like this inconsistency in the Answer to Quick Quiz has
> been Motohiro's translation note for quite a while.
> (since 2017?)
>
> He contributed to perfbook in the past.  There is a couple of
> commits with his Reported-by.
>
> Motohiro, do you mind if I submit patches to Paul on behalf of
> you like this?
>
> And I think Paul is likely to do some wordsmithing on top of
> this patch. ;-)
>
>         Thanks, Akira
> --
>  appendix/whymb/whymemorybarriers.tex | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/appendix/whymb/whymemorybarriers.tex
> b/appendix/whymb/whymemorybarriers.tex
> index dff7fafc..301342f3 100644
> --- a/appendix/whymb/whymemorybarriers.tex
> +++ b/appendix/whymb/whymemorybarriers.tex
> @@ -1152,7 +1152,10 @@ void bar(void)
>  }
>  \end{VerbatimN}
>
> -	Given this optimization, the assertion could clearly fire.
> +	Given this optimization, the code would behave in a completely
> +	different way than the original intention.
> +	If \co{bar()} observed \qco{b == 0}, the assertion could not
> +	be reached due to the infinite loop.
>  	You should use volatile casts or (where available) C++
>  	relaxed atomics to prevent the compiler from optimizing
>  	your parallel code into oblivion.
> --
> 2.17.1
>
>



[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