From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jamie Lokier Subject: Re: barriers vs. reads Date: Wed, 23 Jun 2004 17:53:51 +0100 Sender: linux-fsdevel-owner@vger.kernel.org Message-ID: <20040623165351.GE32544@mail.shareable.org> References: <20040622205309.GC3200@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Jens Axboe , linux-fsdevel@vger.kernel.org, Werner Almesberger Return-path: Received: from mail.shareable.org ([81.29.64.88]:51369 "EHLO mail.shareable.org") by vger.kernel.org with ESMTP id S266075AbUFWQyK (ORCPT ); Wed, 23 Jun 2004 12:54:10 -0400 To: Bryan Henderson Content-Disposition: inline In-Reply-To: List-Id: linux-fsdevel.vger.kernel.org Bryan Henderson wrote: > Also: The question is about the block layer, but you answer in terms of > direct I/O. Does __make_request() know what direct I/O is? I thought it > just did I/O for I/O's sake. > > >The page cache will make sure don't see "foo", since you'll wait for the > >page to unlocked at the end of io. > > If it's a page cache page, the point is moot because the elevator would > never see the sequence of requests in question. But my question is about > the general case, with no assumptions about who is calling > __make_request() and why. This whole thread is asking a simple question: what shall we define "I/O write barrier" to mean? Does it force an ordering for reads after the barrier which overlap writes before the barrier, or not? We are free to define the answer as "yes" or "no", according to whichever is more useful. Or even to define two kinds of barrier, if that would be useful. (E.g. I wonder if direct I/O to a file on a journalled filesystem would need that). -- Jamie