On 2019/01/11 19:40, Dmitry Vyukov wrote: > On Fri, Jan 11, 2019 at 11:28 AM Tetsuo Handa > <penguin-kernel@xxxxxxxxxxxxxxxxxxx> wrote: >> >> On 2019/01/11 19:19, Dmitry Vyukov wrote: >>>> @@ -200,6 +200,7 @@ void end_buffer_write_sync(struct buffer_head *bh, int uptodate) >>>> struct buffer_head *head; >>>> struct page *page; >>>> int all_mapped = 1; >>>> + static unsigned long last; >>> >>> /\/\/\/\/\/\ >>> >>> We will have to re-fix this when we start testing with KTSAN, data >>> race detector. >> >> What's wrong? This race is harmless. > > How did you arrive to the conclusion that it is harmless? > There is only one relevant standard covering this, which is the C > language standard, and it is very clear on this -- this has Undefined > Behavior, that is the same as, for example, reading/writing random > pointers. > > Check out this on how any race that you might think is benign can be > badly miscompiled and lead to arbitrary program behavior: > https://software.intel.com/en-us/blogs/2013/01/06/benign-data-races-what-could-possibly-go-wrong > This is a "static" variable. In the Linux kernel's world, "static" variable is automatically initialized to 0. I just want to avoid bloated logs like https://syzkaller.appspot.com/text?tag=CrashLog&x=11f4a5e8c00000 .