Re: SII SATA request size limit

From: CASINO_E
Date: Mon Sep 15 2003 - 10:24:58 EST


Forgive me if I'm saying something stupid but, do you mean a special
case for this controller in ide-dma.c:ide_build_dmatable()?

In this case, should not segment size and boundary be included in hwif
so we can have a generic ide_build_dmatable() without dealing
explicitly with special cases? We could initialize to the default for
most controllers and set the values for the exceptions inside each
particular driver.

----- Mensaje Original -----
De: Jens Axboe <axboe@xxxxxxx>
Fecha: Lunes, Septiembre 15, 2003 10:47 am
Asunto: Re: SII SATA request size limit

> On Fri, Sep 12 2003, Eduardo Casino wrote:
> > Hi All,
> >
> > I had a look at the NetBSD pciide.c driver and found this
> interesting> bit of code:
> >
> > /*
> > * Rev. <= 0x01 of the 3112 have a bug that can cause data
> > * corruption if DMA transfers cross an 8K boundary. This is
> > * apparently hard to tickle, but we'll go ahead and play it
> > * safe.
> > */
> > if (PCI_REVISION(pa->pa_class) <= 0x01) {
> > sc->sc_dma_maxsegsz = 8192;
> > sc->sc_dma_boundary = 8192;
> > }
> >
> > This is basically the same as setting hwif->rqsize to 15, but
> the NetBSD
>
> You can do much much better than that, it's pretty simply to just
> restrict the segment size and boundary if you have a controller with
> such a bug. And then you get the benefit of the larger requests too,
> it's basically not a performance hit at that point.
>
> --
> Jens Axboe
>
>


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/