On Wed, Mar 28, 2018 at 11:50 AM, Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> wrote: > On Wed, 2018-03-28 at 09:53 +0100, Will Deacon wrote: >> For arm/arm64 these end up behaving exactly the same as readX/writeX, but >> I'm nervous about changing the documentation without understanding why it's >> like it is currently. Maybe another ia64 thing?. > > I doubt it ... the Intel ancestry here would make me think they are > completely ordered there too. > > powerpc and ARM can't quite make them synchronous I think, but at least > they should have the same semantics as writel. One thing that ARM does IIRC is that it only guarantees to order writel() within one device, and the memory mapped PCI I/O space window almost certainly counts as a separate device to the CPU. In the absence of an enforced global synchronization during an I/O port access, that means writel() and outb() can be reordered before they arrive at a device in theory. Again, this rarely matters in practice, but I think it makes sense to document the less strict behavior here, given that we have common hardware that can't provide x86 compatible semantics. Arnd -- 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