Re: [PATCH v2 cmpxchg 12/13] sh: Emulate one-byte cmpxchg
"Paul E. McKenney" <[email protected]>
| Newsgroups | gmane.linux.ports.sh.devel,gmane.linux.kernel.cross-arch,gmane.linux.kernel |
|---|---|
| Message-ID | <9b0acc4c-6ba9-4743-bad7-2baa1e29b085@paulmck-laptop> |
On Fri, May 03, 2024 at 12:24:47AM +0100, Al Viro wrote: > On Thu, May 02, 2024 at 04:12:44PM -0700, Paul E. McKenney wrote: > > > > I'm probably missing your point, though - what mix of cmpxchg and > > > smp_store_release on 8bit values? > > > > One of RCU's state machines uses smp_store_release() to start the > > state machine (only one task gets to do this) and cmpxchg() to update > > state beyond that point. And the state is 8 bits so that it and other > > state fits into 32 bits to allow a single check for multiple conditions > > elsewhere. > > Humm... smp_store_release() of 8bit on old alpha is mb + fetch 64bit + replace > 8 bits + store 64bit... Agreed, which is why Arnd is moving his patches ahead. (He and I discussed this some weeks back, so not a surprise for him.) For my part, I dropped 16-bit cmpxchg emulation when moving from the RFC series to v1. Thanx, Paul