2008-01-05 13:40:58

by Al Boldi

[permalink] [raw]
Subject: Forcing modes in libata (was: SATA buffered read VERY slow)

Alan Cox wrote:
> hdparm supports identify to read modes on drives with libata. The one
> thing you cannot do is force modes right now.

I have some AOpen 52x/32x CD-RWriter, that advertises itself as DMA capable,
but has a hard time sustaining such access. The only way to make access to
this drive safe is by reducing it to PIO-3 even on XP, which makes libata
somewhat unusable on this drive, especially for writing.

What's hindering the ability to force a mode in libata, as is possible with
the normal ide-driver?


Thanks!

--
Al


2008-01-05 16:32:17

by Alan

[permalink] [raw]
Subject: Re: Forcing modes in libata (was: SATA buffered read VERY slow)

On Sat, 5 Jan 2008 16:41:03 +0300
Al Boldi <[email protected]> wrote:

> What's hindering the ability to force a mode in libata, as is possible with
> the normal ide-driver?

We want it to be correct and race free. That means we have to synchronize
all the devices on the controller, quiesce them and recompute the speeds
for each device then turn them all back on and resume command processing.

It is quite hairy although Tejun's EH work has provided the framework for
all of this.

For now you can boot with libata.dma=1 to select DMA on disks but not CD

2008-01-06 05:04:05

by Al Boldi

[permalink] [raw]
Subject: Re: Forcing modes in libata (was: SATA buffered read VERY slow)

Alan Cox wrote:
> Al Boldi <[email protected]> wrote:
> > What's hindering the ability to force a mode in libata, as is possible
> > with the normal ide-driver?
>
> We want it to be correct and race free. That means we have to synchronize
> all the devices on the controller, quiesce them and recompute the speeds
> for each device then turn them all back on and resume command processing.
>
> It is quite hairy although Tejun's EH work has provided the framework for
> all of this.
>
> For now you can boot with libata.dma=1 to select DMA on disks but not CD

Great, but why isn't this in the documentation?


Thanks!

--
Al

2008-01-06 13:38:16

by Alan

[permalink] [raw]
Subject: Re: Forcing modes in libata (was: SATA buffered read VERY slow)

On Sun, 6 Jan 2008 08:03:31 +0300
> > For now you can boot with libata.dma=1 to select DMA on disks but not CD
>
> Great, but why isn't this in the documentation?

Send patches

2008-01-06 15:21:22

by FD Cami

[permalink] [raw]
Subject: [PATCH] Re: Forcing modes in libata (was: SATA buffered read VERY slow)

On Sun, 6 Jan 2008 13:36:09 +0000
Alan Cox <[email protected]> wrote:

> On Sun, 6 Jan 2008 08:03:31 +0300
> > > For now you can boot with libata.dma=1 to select DMA on disks but
> > > not CD
> >
> > Great, but why isn't this in the documentation?
>
> Send patches

patch attached.

Description : Add libata.dma= to Documentation/kernel-parameters.txt

Found documentation in :
http://www.mail-archive.com/linux-ide%40vger.kernel.org/msg09849.html
http://www.redhat.com/archives/fedora-extras-commits/2007-October/msg04568.html

Signed-off-by: François Cami <[email protected]>


Attachments:
(No filename) (592.00 B)
libata-doc-patch.txt (675.00 B)
Download all attachments

2008-01-06 18:09:39

by FD Cami

[permalink] [raw]
Subject: Re: [PATCH] Re: Forcing modes in libata (was: SATA buffered read VERY slow)

On Sun, 6 Jan 2008 17:27:38 +0100
Bartlomiej Zolnierkiewicz <[email protected]> wrote:

> On Sunday 06 January 2008, FD Cami wrote:
> > On Sun, 6 Jan 2008 13:36:09 +0000
> > Alan Cox <[email protected]> wrote:
> >
> > > On Sun, 6 Jan 2008 08:03:31 +0300
> > > > > For now you can boot with libata.dma=1 to select DMA on disks
> > > > > but not CD
> > > >
> > > > Great, but why isn't this in the documentation?
> > >
> > > Send patches
> >
> > patch attached.
> >
> > Description : Add libata.dma= to Documentation/kernel-parameters.txt
> >
> > Found documentation in :
> > http://www.mail-archive.com/linux-ide%40vger.kernel.org/msg09849.html
> > http://www.redhat.com/archives/fedora-extras-commits/2007-October/msg04568.html
> >
> > Signed-off-by: François Cami <[email protected]>
>
> diff -rU2 linux-2.6.24-rc6/Documentation/kernel-parameters.txt
> linux-2.6.24-rc6-mine/Documentation/kernel-parameters.txt
> ---
> linux-2.6.24-rc6/Documentation/kernel-parameters.txt        2008-01-06
> 15:58:54.000000000 +0100 +++
> linux-2.6.24-rc6-mine/Documentation/kernel-parameters.txt   2008-01-06
> 16:11:20.000000000 +0100 @@ -883,4 +883,11 @@ C2 power state.
> +       libata.dma=     [LIBATA] DMA control
> +                       libata.dma=0      Disable all PATA DMA like
> old IDE
>
> this doesn't seem entirely correct:
>
> * IDE has "hdx=nodma" so you can disable DMA on per-device basis

I think that libata.dma=1 is designed to behave like
CONFIG_IDEDMA_ONLYDISK used to. "hdx=nodma" is more fine-grained than
this.

> * is this really limited to PATA?

Alan's original patch took care of PATA. SATA support was added
later by Jeff Garzik. Corrected documentation patch attached.

> +                       libata.dma=1      Disk DMA only
> +                       libata.dma=2      ATAPI DMA only
> +                       libata.dma=3      CF DMA only

This is also wrong, it should be "libata.dma=4      CF DMA only"
Thanks to Zoltan Boszormenyi <[email protected]> for catching this
mistake.

Revised patch attached.

Best,

François


Attachments:
(No filename) (2.16 kB)
libata-doc-patch2.txt (846.00 B)
Download all attachments
Subject: Re: [PATCH] Re: Forcing modes in libata (was: SATA buffered read VERY slow)

On Sunday 06 January 2008, FD Cami wrote:
> On Sun, 6 Jan 2008 17:27:38 +0100
> Bartlomiej Zolnierkiewicz <[email protected]> wrote:
>
> > On Sunday 06 January 2008, FD Cami wrote:
> > > On Sun, 6 Jan 2008 13:36:09 +0000
> > > Alan Cox <[email protected]> wrote:
> > >
> > > > On Sun, 6 Jan 2008 08:03:31 +0300
> > > > > > For now you can boot with libata.dma=1 to select DMA on disks
> > > > > > but not CD
> > > > >
> > > > > Great, but why isn't this in the documentation?
> > > >
> > > > Send patches
> > >
> > > patch attached.
> > >
> > > Description : Add libata.dma= to Documentation/kernel-parameters.txt
> > >
> > > Found documentation in :
> > > http://www.mail-archive.com/linux-ide%40vger.kernel.org/msg09849.html
> > > http://www.redhat.com/archives/fedora-extras-commits/2007-October/msg04568.html
> > >
> > > Signed-off-by: François Cami <[email protected]>
> >
> > diff -rU2 linux-2.6.24-rc6/Documentation/kernel-parameters.txt
> > linux-2.6.24-rc6-mine/Documentation/kernel-parameters.txt
> > ---
> > linux-2.6.24-rc6/Documentation/kernel-parameters.txt        2008-01-06
> > 15:58:54.000000000 +0100 +++
> > linux-2.6.24-rc6-mine/Documentation/kernel-parameters.txt   2008-01-06
> > 16:11:20.000000000 +0100 @@ -883,4 +883,11 @@ C2 power state.
> > +       libata.dma=     [LIBATA] DMA control
> > +                       libata.dma=0      Disable all PATA DMA like
> > old IDE
> >
> > this doesn't seem entirely correct:
> >
> > * IDE has "hdx=nodma" so you can disable DMA on per-device basis
>
> I think that libata.dma=1 is designed to behave like
> CONFIG_IDEDMA_ONLYDISK used to. "hdx=nodma" is more fine-grained than
> this.

Seems so but CONFIG_IDEDMA_ONLYDISK was removed on the same day
that "hdx=nodma" was introduced (Oct 16 2007)...

> > * is this really limited to PATA?
>
> Alan's original patch took care of PATA. SATA support was added
> later by Jeff Garzik. Corrected documentation patch attached.
>
> > +                       libata.dma=1      Disk DMA only
> > +                       libata.dma=2      ATAPI DMA only
> > +                       libata.dma=3      CF DMA only
>
> This is also wrong, it should be "libata.dma=4      CF DMA only"
> Thanks to Zoltan Boszormenyi <[email protected]> for catching this
> mistake.
>
> Revised patch attached.

Thanks, looks good to me.

Bart

2008-01-10 21:56:22

by Jeff Garzik

[permalink] [raw]
Subject: Re: [PATCH] Re: Forcing modes in libata

FD Cami wrote:
> Revised patch attached.
>
> Best,
>
> Fran?ois
>

applied. please include signed-off-by lines in the future...

2008-01-11 22:32:03

by FD Cami

[permalink] [raw]
Subject: Re: [PATCH] Re: Forcing modes in libata


Hi,

On Thu, 10 Jan 2008 16:56:10 -0500
Jeff Garzik <[email protected]> wrote:

> FD Cami wrote:
> > Revised patch attached.
> >
> > Best,
> >
> > François
> >
>
> applied. please include signed-off-by lines in the future...

Will do. Thanks !

François