Messages in this thread | | | Date | Sun, 30 Nov 2003 19:22:32 +0100 | From | Jens Axboe <> | Subject | Re: Silicon Image 3112A SATA trouble |
| |
On Sun, Nov 30 2003, Jeff Garzik wrote: > Jens Axboe wrote: > >On Sun, Nov 30 2003, Vojtech Pavlik wrote: > > > >>On Sun, Nov 30, 2003 at 06:10:06PM +0100, Jens Axboe wrote: > >> > >> > >>>On Sun, Nov 30 2003, Jeff Garzik wrote: > >>> > >>>>Bartlomiej Zolnierkiewicz wrote: > >>>> > >>>>>On Sunday 30 of November 2003 17:51, Jens Axboe wrote: > >>>>> > >>>>>>>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 > >>>>>> > >>>>>>Or split the request 50/50. > >>>>> > >>>>> > >>>>>We can't - hardware will lock up. > >>>> > >>>>Well, the constraint we must satisfy is > >>>> > >>>> sector_count % 15 != 1 > >>> > >>> (sector_count % 15 != 1) && (sector_count != 1) > >>> > >>>to be more precise :) > >> > >>I think you wanted to say: > >> > >> (sector_count % 15 != 1) || (sector_count == 1) > > > > > >Ehm no, I don't think so... To my knowledge, sector_count == 1 is ok. If > >not, the hardware would be seriously screwed (ok it is already) beyond > >software fixups. > > > Now that you've kicked my brain into action, yes, sector_count==1 is ok. > It's all about limiting the data FIS... and with sector_count==1 > there is no worry about the data FIS in this case.
Ah, my line wasn't completely clear (to say the least)... So to clear all doubts:
if ((sector_count % 15 == 1) && (sector_count != 1)) errata path
Agree?
-- Jens Axboe
- 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/
| |