Re: [PATCH 2/4] arch: Add lightweight memory barriers fast_rmb() and fast_wmb()
From: Alexander Duyck <hidden>
Date: 2014-11-17 20:24:13
Also in:
linux-arch, lkml
From: Alexander Duyck <hidden>
Date: 2014-11-17 20:24:13
Also in:
linux-arch, lkml
On 11/17/2014 12:04 PM, Benjamin Herrenschmidt wrote:
On Mon, 2014-11-17 at 09:18 -0800, Alexander Duyck wrote:quoted
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