From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Arnd Bergmann To: Roland Dreier Subject: Re: [patch 9/9] powerpc/cell: Add DMA_ATTR_STRONG_ORDERING dma attribute and use in IOMMU code Date: Wed, 16 Jul 2008 09:54:03 +0200 References: <20080715195139.316677337@arndb.de> <200807152327.06946.arnd@arndb.de> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Message-Id: <200807160954.03633.arnd@arndb.de> Cc: Mark Nelson , linuxppc-dev@ozlabs.org, cbe-oss-dev@ozlabs.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Wednesday 16 July 2008, Roland Dreier wrote: > =A0> Strong ordering is only active when both the bridge and the IOMMU en= able > =A0> it, but for correctly written drivers, this only results in a slowdo= wn. >=20 > So when would someone use this dma attribute? =A0As a hack to fix drivers > where the real fix is too complicated? This is used in the Axon PCIe endpoint drivers, e.g. in the Roadrunner machine. The reason was to improve roundtrip latency by doing only mmio stores, not loads, on each side of the PCIe connection, which turn into posted DMA operations on the other end. With relaxed ordering, the posted writes may be observed out of order. Strong ordering makes sure they arrive in-order without having to do a non-posted mmio read or eieio operation on the receiver side. Arnd <><