On Tue, Jun 06, 2006 at 12:19:08AM +1000, Keith Owens wrote:
> The ATA Streaming Feature Set defines the Handle Stream Error (HSE) bit
> to mark data which is critical, and therefore needs full error
> recovery. That leaves all other data to be handled as best case,
> returning no data instead of taking too long. Why not use HSE to mark
> the filesystem metadata and journals? Then you do not need to separate
> metadata from normal data at the disk level.
Hmm, OK, interesting.
> Of course that requires a change to the VFS layer to pass a flag saying
> "this data is critical", plus support in the I/O path for setting HSE.
Its a trivial thing from the filesystem POV - in XFS, it would
require a change in fs/xfs/linux-2.6/xfs_buf.c - the call into
submit_bio() there is the point all metadata and log IO gets
funnelled through, and file data doesn't travel that path. So,
if the drivers/block layer supported a bio flag to say "this is
critical", it should be a one-line XFS change to support that I
I actually spoke to Jens awhile back about having a bio flag to
tag this kind of difference, it'd also be useful to us from a block
device tracing POV (i.e. in blktrace) for easily distinguishing file
data from metadata/log IOs, so maybe this is one way we'd be able to
see a little featurette like that someday too.
> Until the kernel is changed, your only option is to use a filesystem
> that lets you manually separate the two classes of data. The Streaming
> Feature Set is held in the cfsse field and nothing in the kernel uses
> cfsse in any significant way, so it will probably be a while before
> Linux supports AV mode.