Messages in this thread | | | Date | Tue, 7 Jun 2016 19:01:07 +0100 | From | Will Deacon <> | Subject | Re: [RFC][PATCH 1/3] locking: Introduce smp_acquire__after_ctrl_dep |
| |
On Tue, Jun 07, 2016 at 08:23:15AM -0700, Paul E. McKenney wrote: > On Tue, Jun 07, 2016 at 04:59:02PM +0200, Hannes Frederic Sowa wrote: > > Sorry, to follow-up again on this. Will Deacon's comments were about > > conditional-move instructions, which this compiler-option would prevent, > > as far as I can see it. > > According to this email thread, I believe that this works the other > way around: > > http://thread.gmane.org/gmane.linux.kernel/1721993 > > That parameter prevents the compiler from converting a conditional > store into an unconditional store, which would be really problematic. > Give the current kernel build, I believe that the compiler really is > within its rights to use conditional-move instructions as shown above. > But I again must defer to Will Deacon on the details.
A multi_v7_defconfig build of mainline certainly spits out conditional store instructions, but I have no idea whether these correspond to WRITE_ONCE or not:
$ objdump -d vmlinux | grep 'str\(eq\|ne\)' | wc -l 7326
At the end of the day, the ARM architecture says you can't rely on this being ordered and I can see it happening in practice in the face of conditional stores.
Will
| |