From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Chinner Subject: Re: BLKZEROOUT + pread should return zeroes, right? Date: Wed, 15 Oct 2014 07:21:47 +1100 Message-ID: <20141014202147.GI17506@dastard> References: <20141014030132.GA12013@birch.djwong.org> <20141014042711.GJ5267@dastard> <20141014092128.GA23656@infradead.org> <20141014185753.GA6838@lenny.home.zabbo.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Christoph Hellwig , "Darrick J. Wong" , Jens Axboe , "Martin K. Petersen" , linux-fsdevel@vger.kernel.org, Theodore Ts'o , linux-ext4 To: Zach Brown Return-path: Received: from ipmail05.adl6.internode.on.net ([150.101.137.143]:17341 "EHLO ipmail05.adl6.internode.on.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754840AbaJNUVv (ORCPT ); Tue, 14 Oct 2014 16:21:51 -0400 Content-Disposition: inline In-Reply-To: <20141014185753.GA6838@lenny.home.zabbo.net> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Tue, Oct 14, 2014 at 11:57:53AM -0700, Zach Brown wrote: > On Tue, Oct 14, 2014 at 02:21:28AM -0700, Christoph Hellwig wrote: > > On Tue, Oct 14, 2014 at 03:27:11PM +1100, Dave Chinner wrote: > > > Broken usage, IMO. If you are going to use the block layer ioctls to > > > manipulate data int eh block device, you should be using direct Io > > > for all your data IO to the block device. Otherwise, coherency > > > problems occur.... > > > > I'd say BLKZEROOUT semantics are broken. Having an ioctl exposed > > that maniulates on-disk data without cache coherence is a nightmare > > that people trip over easily. Even experienced people like Darrick. > > I'm definitely with Christoph on this one. Coherent writes should be > the norm. I don't care what happens to the block layer ioctls w.r.t. cache coherency. If people want to make them fully cache coherent for buffered IO, go right ahead. But that doesn't change the fact that if you want your application to work sanely on existing kernels, then using direct IO is the only option... Cheers, Dave. -- Dave Chinner david@fromorbit.com