On 3/26/2018 8:11 AM, okaya@xxxxxxxxxxxxxx wrote: > On 2018-03-26 07:44, Will Deacon wrote: >> Hi Ben, >> >> I don't seem to have the beginning of this thread, so please bounce it over >> if you'd like me to look at it! >> > > https://www.spinics.net/lists/linux-rdma/msg62570.html > > https://www.spinics.net/lists/linux-rdma/index.html#62666 > To add some more details on why we are looking at this now: I posted several patches last week to remove duplicate barriers on ARM while trying to make the code friendly with other architectures. https://www.spinics.net/lists/netdev/msg491842.html https://www.spinics.net/lists/linux-rdma/msg62434.html https://www.spinics.net/lists/arm-kernel/msg642336.html The conversation on this thread is interesting. https://patchwork.kernel.org/patch/10288987/ 1. I tried to replace wmb()+writel() with wmb()+writel_relaxed(). 2. writel_relaxed() is equal to writel() at this moment for PPC. 3. Chelsio developers wanted to pull it into wmb()+__raw_writel() direction to take advantage of the same optimization for PPC. 4. Dave informed us that behavior of __raw_write() is not identical on all architectures. 5. We decided to go back to PPC and ask to implement writel_relaxed() instead of coming up with writel_realy_relaxed() API. > >> On Fri, Mar 23, 2018 at 11:16:08AM +1100, Benjamin Herrenschmidt wrote: >>> On Thu, 2018-03-22 at 12:51 -0500, Sinan Kaya wrote: >>> > On 3/22/2018 8:52 AM, Benjamin Herrenschmidt wrote: >>> > > > > No, it's not sufficient. >>> > > >>> > > Just to clarify ... barrier() is just a compiler barrier, it means the >>> > > compiler will generate things in the order they are written. This isn't >>> > > sufficient on archs with an OO memory model, where an actual memory >>> > > barrier instruction needs to be emited. >>> > >>> > Surprisingly, ARM64 GCC compiler generates a write barrier as >>> > opposed to preventing code reordering. >> >> In context, this looks like a misunderstanding somewhere. barrier() is a >> compiler barrier for us just like everybody else and we use the generic >> implementation with the empty asm + memory clobber. >> > > True, I clarified it this weekend > > https://www.spinics.net/lists/linux-rdma/msg62788.html > > > -- 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. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html