Messages in this thread | | | Date | Mon, 17 Nov 2014 12:24:08 -0800 | From | Alexander Duyck <> | Subject | Re: [PATCH 2/4] arch: Add lightweight memory barriers fast_rmb() and fast_wmb() |
| |
On 11/17/2014 12:04 PM, Benjamin Herrenschmidt wrote: > On Mon, 2014-11-17 at 09:18 -0800, Alexander Duyck wrote: >> There are a number of situations where the mandatory barriers rmb() and >> wmb() are used to order memory/memory operations in the device drivers >> and those barriers are much heavier than they actually need to be. For >> example in the case of PowerPC wmb() calls the heavy-weight sync >> instruction when for memory/memory operations all that is really needed is >> an lsync or eieio instruction. > So essentially those are the same as the smp_* variants but not nop'ed > out on !CONFIG_SMP right ? > > Ben. >
Yes and no. So for example on ARM I used the dmb() operation, however I have to use the barrier at the system level instead of just the inner shared domain. However on many other architectures they are just the same as the smp_* variants.
Basically the resultant code is somewhere between the smp and non-smp barriers in terms of what they cover.
Thanks,
Alex
| |