lkml.org 
[lkml]   [1996]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Block device interface could use some work
>   From: "Theodre Ts'o" <tytso@mit.edu>
>
> Unfortunately (at least for this analysis), the high-level code tries to
> merge adjacent requests for performance reasons. Hence, a request may
> span a large number of blocks. If there is a bad block is in a middle
> of a multi-block request, all of the blocks associated in the
> multi-block request will be marked as being in error, even ones which
> (a) were in fact successfully read, and (b) those which could have been
> successfully read if the device driver had actually tried to read them.
>
> The SCSI disk driver now attempts to handle this case correctly, calling
> end_request for success with the blocks that were OK, with failure for the
ones
> that didn't, and then retries the remainder. It's not pretty...

Given that errors are rare (at least, they had BETTER be rare!), why not
just re-issue the requests, but (somehow) prevent them from being merged.
You _don't_ need to optimize for the error case, as long as you handle it
properly.
>
> Leonard


\
 
 \ /
  Last update: 2005-03-22 13:38    [W:0.034 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site