> This whole thread also ties in with my posts about mmiowb (which IMOIn addition, some archs like powerpc also provide readl_be/writel_be as being defined as big endian (ie. byteswap on LE archs, no byteswap on BE archs). As of today, powerpc lacks the raw_readl/raw_writel and __readl/__writel variants (ie, we only provide fully ordered + byteswap and no ordering + no byteswap variants). If we agree on the above semantics, I'll do a patch providing the missing ones. The ordering guarantees that I provide on powerpc for "ordered" variants are: - cacheable store + writel stays ordered (ie, write to some DMA stuff and then a register to trigger the DMA). - readl + cacheable read stays ordered (ie. read some status register, for example, after an interrupt, and then read the resulting data in memory). - any of these ordered vs. spin_lock and spin_unlock (with the exception that stores done before the spin_lock could potentially leak into the lock). - readl is synchronous (ie, makes the CPU think the data was actually used before executing subsequent instructions, thus waits for the data to come back, for example to ensure that a read used to push out post buffers followed by a delay will indeed happen with the right delay). We don't provide meaningless ones like writel + cacheable store for example. (PCI posting would defeat it anyway). Ben. --
| Jeremy Fitzhardinge | Re: [RFC 00/15] x86_64: Optimize percpu accesses |
| Vladislav Bolkhovitin | Re: Integration of SCST in the mainstream Linux kernel |
| Mike Galbraith | Re: regression: CD burning (k3b) went broke |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Linus Torvalds | Re: [GIT]: Networking |
| Michael Grollman | Re: 8169 Intermittent ifup Failure Issue With RTL8102E Chipset in Intel's New D945... |
