Re: Silicon Image 3112A SATA trouble

Jeff Garzik
2003-11-30T16:42:13Z

Jens Axboe wrote:
> On Sun, Nov 30 2003, Bartlomiej Zolnierkiewicz wrote:
>>Hmm. actually I was under influence that we have generic ioctls in 2.6.x,
>>but I can find only BLKSECTGET, BLKSECTSET was somehow lost. Jens?
>
>
> Probably because it's very dangerous to expose, echo something too big
> and watch your data disappear.

IMO, agreed.

Max KB per request really should be set by the driver, as it's a
hardware-specific thing that (as we see :)) is often errata-dependent.

Tangent: My non-pessimistic fix will involve submitting a single sector
DMA r/w taskfile manually, then proceeding with the remaining sectors in
another r/w taskfile. This doubles the interrupts on the affected
chipset/drive combos, but still allows large requests. I'm not terribly
fond of partial completions, as I feel they add complexity, particularly
so in my case: I can simply use the same error paths for both the
single-sector taskfile and the "everything else" taskfile, regardless of
which taskfile throws the error.

(thinking out loud) Though best for simplicity, I am curious if a
succession of "tiny/huge" transaction pairs are efficient? I am hoping
that the drive's cache, coupled with the fact that each pair of
taskfiles is sequentially contiguous, will not hurt speed too much over
a non-errata configuration...

Jeff