Re: [PATCH] seqlock: Use WRITE_ONCE() on sequence update
"Daniel Xu" <[email protected]> Tue, 17 Dec 2024 18:03:56 -0800
| Newsgroups | org.kernel.vger.perfbook |
|---|---|
| Message-ID | <[email protected]> |
Hi Akira, Thanks for taking a look! On Tue, Dec 17, 2024, at 5:53 PM, Akira Yokosawa wrote: > Hello, > > Daniel Xu wrote: >> WRITE_ONCE() is needed here to prevent store tears and other unwanted >> compiler optimizations. > > That might be true if there were chances of these two accesses to > race with each other. > > I don't see any possibility of such races. > > Can you elaborate? My understanding is that read_seqbegin() and read_seqretry() can execute at any time. That means the read side access of the sequence number can occur doing an increment. To prevent the reader from reading a partially written value, we need the WRITE_ONCE() to ensure the relaxed atomic write. Thanks, Daniel