From owner-freebsd-hackers Wed Mar 6 9:56:53 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from bingnet2.cc.binghamton.edu (bingnet2.cc.binghamton.edu [128.226.1.18]) by hub.freebsd.org (Postfix) with ESMTP id 3B29B37B400 for ; Wed, 6 Mar 2002 09:56:50 -0800 (PST) Received: from onyx (onyx.cs.binghamton.edu [128.226.140.171]) by bingnet2.cc.binghamton.edu (8.11.6/8.11.6) with ESMTP id g26HuXm06314; Wed, 6 Mar 2002 12:56:33 -0500 (EST) Date: Wed, 6 Mar 2002 12:54:48 -0500 (EST) From: Zhihui Zhang X-Sender: zzhang@onyx To: Peter Pentchev Cc: Peter Edwards , "Brian T.Schellenberger" , Lars Eggert , "Rogier R. Mulhuijzen" , Julian Elischer , freebsd-hackers@FreeBSD.ORG Subject: Re: A weird disk behaviour In-Reply-To: <20020306192418.G14052@straylight.oblivion.bg> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Wed, 6 Mar 2002, Peter Pentchev wrote: > On Wed, Mar 06, 2002 at 12:12:44PM -0500, Zhihui Zhang wrote: > > > > > > On Wed, 6 Mar 2002, Peter Edwards wrote: > > > > > Zhihui Zhang wrote: > > > > > > > > > > > > > ... I also do not read anything during the partial block write, > > > > and I think the disk controller should not do that either. > > > > > > If you do a partial block write, surely at some point the block must be read > > > in order to preserve that segment of data you are _not_ overwriting? > > > > First off, I am not writing through any file system. I access the raw > > device directly. Secondly, the bytes written are always a multiple of 512 > > bytes. If one sector is the I/O unit of a disk controller, why should it > > read anything to prevent overwritten? > > I think Peter was referring to the (more common IMHO) case when one sector > was not quite the I/O unit of the disk controller, especially WRT caching. > That is, the disk controller does not actually do a physical disk write > for each and every sector, but only in larger blocks. This makes sense. So you are saying that the read-modify-write cycle actually happens within the disk controller? If so, I would love to know the unit of the disk controller I/O to avoid it! -Zhihui To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message