Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932142AbWB1RN5 (ORCPT ); Tue, 28 Feb 2006 12:13:57 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932171AbWB1RN4 (ORCPT ); Tue, 28 Feb 2006 12:13:56 -0500 Received: from detroit.securenet-server.net ([209.51.153.26]:30101 "EHLO detroit.securenet-server.net") by vger.kernel.org with ESMTP id S932142AbWB1RN4 (ORCPT ); Tue, 28 Feb 2006 12:13:56 -0500 From: Jesse Barnes To: Roland Dreier Subject: Re: [PATCH] Define wc_wmb, a write barrier for PCI write combining Date: Tue, 28 Feb 2006 09:13:41 -0800 User-Agent: KMail/1.9.1 Cc: Jes Sorensen , "Bryan O'Sullivan" , Andrew Morton , Andi Kleen , linux-kernel References: <1140841250.2587.33.camel@localhost.localdomain> <44047565.3090202@sgi.com> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200602280913.41938.jbarnes@virtuousgeek.org> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - detroit.securenet-server.net X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [0 0] / [47 12] X-AntiAbuse: Sender Address Domain - virtuousgeek.org X-Source: X-Source-Args: X-Source-Dir: Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1558 Lines: 30 On Tuesday, February 28, 2006 9:02 am, Roland Dreier wrote: > Jes> Not quite correct as far as I understand it. mmiowb() is > Jes> supposed to guarantee that writes to MMIO space have > Jes> completed before continuing. That of course covers the > Jes> multi-CPU case, but it should also cover the write-combining > Jes> case. > > I don't believe this is correct. mmiowb() does not guarantee that > writes have completed -- they may still be pending in a buffer in a > bridge somewhere. The _only_ effect of mmiowb() is to make sure that > writes which have been ordered between CPUs using some other mechanism > (i.e. a lock) are properly ordered by the rest of the system. This > only has an effect systems like very large ia64 systems, where (as I > understand it), writes can pass each other on the way to the PCI bus. > In fact, mmiowb() is a NOP on essentially every architecture. I think it could be implemented meaningfully on ppc64, mips64, and perhaps some parisc systems, but I don't think their respective maintainers have gotten around to that yet. Anyway, it looks like the write combine ordering Bryan is talking about really is a distinct semantic. Not sure if it's possible (or desirable) to overload an existing barrier op to include the semantics he wants. Jesse - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/