RFC on writel and writel_relaxed
Sinan Kaya
okaya at codeaurora.org
Sun Mar 25 02:06:52 AEDT 2018
On 3/23/2018 9:22 PM, Benjamin Herrenschmidt wrote:
>> Yes, I'm %100 sure. The answer is both writel() and barrier() generates
>> a write barrier instruction. I found this by searching the kernel disassembly
>> for back to back "dsb st" instruction.
> I'm not sure you are correct here. As I wrote below, the implementatoin
> of writel() contains an *explicit" memory barrier which is completely
> different to a barrier() instruction:
OK. I did some directed tests and I'm taking it back.
barrier() is a compiler reordering statement only.
What got me confused was this sequence:
wmb()
barrier()
writel()
I thought that the second barrier instruction was coming from barrier() but
it was actually coming from writel().
--
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
More information about the Linuxppc-dev
mailing list