Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Oct 1999 12:44:30 +1000
From:      Peter Jeremy <jeremyp@gsmx07.alcatel.com.au>
To:        freebsd-arch@freebsd.org
Subject:   Re: The eventual fate of BLOCK devices.
Message-ID:  <99Oct11.124046est.40329@border.alcanet.com.au>
In-Reply-To: <199910110121.SAA18665@apollo.backplane.com>
References:  <Pine.BSF.4.10.9910101323201.12493-100000@current1.whistle.com> <199910110121.SAA18665@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 1999-Oct-11 11:21:04 +1000, Matthew Dillon wrote:
>    There are several trivial ways to solve the write-error problem.

Unless I've missed something along the way, it's not that simple.
Traditionally, a write to a block device sits in the buffer cache
until the sync daemon flushes it to disk.  I thought that unifying VM
and the buffer cache, together with softupdates, would have relatively
little impact on this - there's still a write-back cache with the
cache flushing occurring asynchronously and independent of the writer.

>  First, 
>  implement writes as write-through so a synchronous error can be returned.

I would have thought that switching from the current write-back to a
write-through policy would, in general, entail a significant
performance hit.  Even if filesystem I/O is excluded (which I believe
is the intent), you still lose the I/O clustering benefits.

>    Second, implement an error code on close.

This would seem to be preferable (and even POLA for direct I/O to
block devices).  The problem I can see is firstly, the delays in
syncer and secondly, getting I/O errors from syncer to to process (or
processes, since several different processes could have written to the
block(s) in question) issuing the close.

> There are also situations where
>    errors can be assumed to not occur, such as when using buffered VN
>    partition which is backed by a file or swap.

The device underlying the filesystem or swap could still suffer
errors.  At some point, a decision needs to be made that the error is
not reported back to the caller, but notified to `the operator' as
a `system' error.

Peter
-- 
Peter Jeremy (VK2PJ)                    peter.jeremy@alcatel.com.au
Alcatel Australia Limited
41 Mandible St                          Phone: +61 2 9690 5019
ALEXANDRIA  NSW  2015                   Fax:   +61 2 9690 5982




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?99Oct11.124046est.40329>