Messages in this thread | | | Date | Sun, 30 Nov 2003 11:41:55 -0500 | From | Jeff Garzik <> | Subject | Re: Silicon Image 3112A SATA trouble |
| |
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
- 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/
| |