lkml.org 
[lkml]   [2007]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFD] BIO_RW_BARRIER - what it means for devices, filesystems, and dm/md.
Neil Brown wrote:
> We can think of there being three types of devices:
>
> 1/ SAFE. With a SAFE device, there is no write-behind cache, or if
> there is it is non-volatile. Once a write completes it is
> completely safe. Such a device does not require barriers
> or ->issue_flush_fn, and can respond to them either by a
> no-op or with -EOPNOTSUPP (the former is preferred).
>
> 2/ FLUSHABLE.
> A FLUSHABLE device may have a volatile write-behind cache.
> This cache can be flushed with a call to blkdev_issue_flush.
> It may not support barrier requests.
>
> 3/ BARRIER.
> A BARRIER device supports both blkdev_issue_flush and
> BIO_RW_BARRIER. Either may be used to synchronise any
> write-behind cache to non-volatile storage (media).
>
> Handling of SAFE and FLUSHABLE devices is essentially the same and can
> work on a BARRIER device. The BARRIER device has the option of more
> efficient handling.
>
There are two things I'm not sure you covered.

First, disks which don't support flush but do have a "cache dirty"
status bit you can poll at times like shutdown. If there are no drivers
which support these, it can be ignored.
Second, NAS (including nbd?). Is there enough information to handle this
"really rigt?"

Otherwise looks good as a statement of issues. It seems to me that the
filesystem should be able to pass the barrier request to the block layer
and have it taken care of, rather than have code in each f/s to cope
with odd behavior.

--
bill davidsen <davidsen@tmr.com>
CTO TMR Associates, Inc
Doing interesting things with small computers since 1979

-
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/

\
 
 \ /
  Last update: 2007-05-28 16:45    [from the cache]
©2003-2011 Jasper Spaans