hdparm - cannot set dma on IDE hard drive that works via pata

Bug #110636 reported by ivan on 2007-04-27
72
Affects Status Importance Assigned to Milestone
hdparm (Ubuntu)
Undecided
Unassigned
Declined for Feisty by Ben Collins
Nominated for Intrepid by Sebastian Rode
linux (Ubuntu)
Undecided
Unassigned
Declined for Feisty by Ben Collins
Nominated for Intrepid by Sebastian Rode
linux-source-2.6.20 (Ubuntu)
Undecided
Unassigned
Declined for Feisty by Ben Collins
Nominated for Intrepid by Sebastian Rode
linux-source-2.6.22 (Ubuntu)
Medium
Ben Collins
Declined for Feisty by Ben Collins
Nominated for Intrepid by Sebastian Rode

Bug Description

Binary package hint: hdparm

In Feisty final, all of the disk drives are now called sdX instead of hdX. (as i understand they are now using the new pata driver. I have a regular IDE Drive and i want to enable DMA on it using the hdparm. Here is what i get:
# hdparm -v -d1 /dev/sda

/dev/sda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Inappropriate ioctl for device
 IO_support = 0 (default 16-bit)
 readonly = 0 (off)
 readahead = 256 (on)
 geometry = 9729/255/63, sectors = 156301488, start = 0

What can be done to enable DMA?

ivan (levchenko-i) wrote :

Here is dmesg

ivan (levchenko-i) wrote :

Here is lspci

ivan (levchenko-i) wrote :

and lsmod. If anything else is needed, just ask. I want to help as much as i can!

ivan (levchenko-i) wrote :

ah. just remembered - hdparm -i /dev/sda

Just to endorse it: I have the same problem here. hdparm worked on Hoary, Dapper and Edgy, but in Feisty it doesn't.

dave pretty (david-pretty) wrote :

same problem here. I have reverted to edgy kernel which gives double Mb/s for buffered disk reads (hdparm -tT) than feisty kernel does.

Stoanhart (stoanhart) wrote :

I am having this problem with my DVD drive. My hard drive is fine.

I think an option should be added to feisty to revert back to the old driver until the new one is more mature. I have tried blacklisting libata (in the initramfs too) to cause the kernel to fall back. However, the module is still loaded and used. Any ideas how to revert?

Thanks

Just to endorse - I have the same problem after replacing my edgy and dapper with a fresh install of feisty. Unfortunately I installed feisty for a couple of windows user frens and they just haven't stopped complaining how bad linux is at doing simple things..

JETorkildsen (jeta3) wrote :

I have the same problem.
Here is my hdparm settings:

ivan (levchenko-i) wrote :

Any news on this? Is this bug confirmed or what? has anybody even looked at it?

Daniel Miles (themono) wrote :

This seems to be a fairly major sticking point for some people. DMA is pretty vital. From what I can tell from reading up on the issue, it seems to be a kernel / libata problem. I have assigned this to kernel-bugs in order to at least get someone who will know more looking into it.

Changed in hdparm:
assignee: nobody → kernel-bugs
Daniel Miles (themono) wrote :

I apologise if I am trashing this bug with my changes, but from what I can tell this would be more appropriate for the kernel guys to deal with, and is a bug in the kernel-source. Bear in mind I'm no tech guru, but from what my research tells me (trying to make DMA work on a flatmate's laptop with an Intel 82801 chipset), the problem is either the wrong driver handling the drive (be it HDD or DVD) - where it should have a specific driver, a generic one gets to it first.

OR, it is just that the SCSI driver in 2.6.20 doesn't like DMA on some particular drives when they make the "used to be seen as /dev/hdX, now seen as /dev/sdX".

Ning (news-james) wrote :

I have two PATA based systems which now have woeful disk throughput following the feisty upgrade and aren't able to re-enable DMA on either system (e.g. less than 5MB/sec). One is a Via based MSI K7T266 Pro 2-A (6380), the other is an Intel based ASUS CUSL2-C. The Via system used to enjoy 60+MB/sec prior to the upgrade. After the upgrade neither IDE drive was remapped to the new sdx format and are still accessible as /dev/hda and /dev/hdb. Not sure if this relates to lilo or because I use XFS as my root filesystem (yes I now realize this is not the best option) It is interesting to note that hdparm displays duplicates UDMA modes and wonder if this has something to do with it or if its simply a display bug (e.g. UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 udma3 udma4 *udma5 )

Attachment with full output from uname, hdparm, dmesg, lspci -v, and lsmod attached.

uname -a
========
Linux jupiter2.home.net 2.6.20-15-server #2 SMP Sun Apr 15 07:41:34 UTC 2007 i686 GNU/Linux

hdparm -i /dev/hda
==================

/dev/hda:

 Model=ST3320620A, FwRev=3.AAD, SerialNo=9QF01P05
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=16
 CurCHS=4047/16/255, CurSects=16511760, LBA=yes, LBAsects=268435455
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 udma3 udma4 *udma5
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: Unspecified: ATA/ATAPI-1 ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6 ATA/ATAPI-7

 * signifies the current active mode

hdparm /dev/hda
===============

/dev/hda:
 multcount = 16 (on)
 IO_support = 1 (32-bit)
 unmaskirq = 1 (on)
 using_dma = 0 (off)
 keepsettings = 0 (off)
 readonly = 0 (off)
 readahead = 256 (on)
 geometry = 38913/255/63, sectors = 625142448, start = 0

hdparm -d1 /dev/hda
===================

/dev/hda:
 setting using_dma to 1 (on)
 using_dma = 0 (off)
HDIO_SET_DMA failed: Operation not permitted

hdparm -tT /dev/hda
===================

/dev/hda:
 Timing cached reads: 596 MB in 2.00 seconds = 297.85 MB/sec
 Timing buffered disk reads: 16 MB in 3.15 seconds = 5.09 MB/sec

I have/had the same problem, on Ubuntu Feisty, and I have a workaround

My mainboard has a generic PATA-controller (Intel ICH4) and a Promise PATA-fakeraid-controller (PDC20276)
My harddisks are connected to the Promisecontroller and my DVD-drives are connected to the intelcontroller
The harddisks worked ok I think, but the DVD-drives didn´t user DMA and it´s was not possible to enable it.

So I figured out that the problem is the PATA-support of the libata-modules. Before feisty libata wasn´t used for PATA-drives and everything worked fine, so I tried to compile a kernel without libata.

I took the 2.6.21.1 Version from kernel.org but I think it should work with 2.6.20 too.
Use the config of the standard Ubuntu kernel (/boot/config-2.6.20-15-generic) and start menuconfig and deselected the libata-module (Device drivers-Serial ATA (prod) Parallel ATA (experimental) drivers - ATA Device support)
and then select the old ATA modules for your PATA-Controller(s) under Device Drivers-ATA/ATAPI/MFM/RLL support-
(in my case the PROMISE PDC202{68|69|70|71|75|76|77} support) the if it isn´t selected.

then compile and install the kernel, and that´s it, you don´t have to adapt grub or fstab. All devices are recognized as /dev/hdx and hdparm is fully working.

I guess it should be enough to disable the pata-modules of libata and enable the old pata-drivers, but I didn´t test this, because I have no SATA drives, and didn´t need libata at all.

Florian Bw (florian-bw) wrote :

Same here, works neither for hdd nor dvd.

Ben Collins (ben-collins) wrote :

This is either lack of functionality in the driver, or the physical device really doesn't support it.

Either way, this wont get fixed in feisty. Please test gutsy and report findings here if it is still a problem (also add a linux-source-2.6.22 target, but do not change the 2.6.20 one).

Thanks

Changed in linux-source-2.6.20:
status: New → Won't Fix
Changed in hdparm:
status: New → Invalid
Philipp Hack (philipp-hack) wrote :

>Either way, this wont get fixed in feisty.

What. The. Hell?

Stoanhart (stoanhart) wrote :

"either way, this wont get fixed in feisty."

It is definately a lack of functionality in the driver. My CD drive does support DMA, as it worked pre-libata. I think this is an important issue, and should be addressed WITHIN feisty. Since the old pata driver is still included, all that is needed is a simple way (a script maybe?) to switch back to it. I have tried to do this by blacklisting libata, but this did not work.

I'm sure the kernel team is much more knowledgeable about how to do this. Could they not whip up a quick and dirty script for us? It would sure please a lot of people. Feisty is noticably slower than previous versions of Ubuntu for me. Whenever heavy disk activity is going on (like tracker indexing), the computer becomes extremely unresponsive and difficult to use. This is exactly like what I used to experience under Windows when the hard disk was not in DMA mode.

Thanks

I think so too. It's not really hard to fix. I just want to revert to
the old PATA driver.

ivan (levchenko-i) wrote :

I just installed the latest devel version of gutsy... nothing changed.. same old problems...
Will this be addressed at all?

Ning (news-james) wrote :

Thats disappointing as many people I know use ubuntu on older hardware for media servers and currently have over 1TB of PATA disk attached to mine (Lossless audio streaming and photography). While I dont use mine for DVD playback, the performance hit for PATA disk is too severe and have reverted back to Edgy (6.10) until this issue is fixed as I cant be bothered manually maintaining a custom kernel. I must say I am a little surprised at the lack of urgancy being shown given the number of non-sata laptops ubuntu is used on. In my case the performance of my PATA drives on my AMD 1.8 system dropped from 60+MB/sec to barely 5MB/sec and is very obvious when you routinely move large volumes of data around over GigE. Now I am back on Edgy, all is good performance wise and can sustain 30MB/sec using samba again:

Linux jupiter2.home.net 2.6.17-10-server #2 SMP Tue Dec 5 22:29:32 UTC 2006 i686 GNU/Linux
root@jupiter2:~# hdparm -tT /dev/hda

Edgy
====
/dev/hda:
 Timing cached reads: 1220 MB in 2.00 seconds = 608.88 MB/sec
 Timing buffered disk reads: 182 MB in 3.03 seconds = 60.15 MB/sec

Feisty (same disk)
=====
/dev/hda:
 Timing cached reads: 596 MB in 2.00 seconds = 297.85 MB/sec
 Timing buffered disk reads: 16 MB in 3.15 seconds = 5.09 MB/sec

ivan (levchenko-i) wrote :

The thing that I don't like here is that there has been no info on why it was decided to do this even though the ubuntu team knew that this would decrease performance drastically. All we got was an excuse and that it wouldn't be done soon. well, it doesn't look like it will be fixed in gutsy.. so its a 6 month + wait ....

Philipp Hack (philipp-hack) wrote :

Ivan

If you are experiencing the same problems in gutsy, why don't you go ahead and file a new report against gutsy's kernel package?
There's a chance that it might get fixed before release.

ivan (levchenko-i) wrote :

My bad. On gutsy, you still cannot enable dma with hdparm, but the tests look a better:
/dev/sda:
 Timing cached reads: 768 MB in 2.00 seconds = 383.85 MB/sec
 Timing buffered disk reads: 84 MB in 3.04 seconds = 27.62 MB/sec

Changed in linux-source-2.6.22:
assignee: nobody → ubuntu-kernel-team
importance: Undecided → Medium
status: New → Triaged
Ben Collins (ben-collins) wrote :

Lot of misleading stuff in this report. I see several people showing they cannot enable DMA. Some are shown on hda and some are on sda. So this complicates the "needs PATA driver, not IDE driver". Also, some reports show that udma is actually enabled.

Also, to explain the problem a bit better for feisty (my mistake for not being verbose). Switching drivers sounds easy, but it's actually quite complicated when you have to factor in regression testing. The reason for using the current driver set is because they proved to be stable, and in some cases (like for controllers mentioned here) the alternate driver was actually very unstable, not allowing people to boot. So I consider it very prudent to use a driver that may degrade CD-ROM support for some people as opposed to using a driver that makes the system unbootable for others.

So we will not be working to fix this in feisty. It's unfortunate, but it's a decision we have to make, and it's been made. However, we definitely want to get this fixed in gutsy. There's still three months left of development, so plenty of time.

What I need is a concise description and set of logs for one person (original submitter?) showing the problem under latest gutsy 2.6.22-8-generic kernel. Logs include dmesg, lspci -vvn and hdparm outputs.

Thanks

Changed in linux-source-2.6.22:
assignee: ubuntu-kernel-team → ben-collins
status: Triaged → Incomplete
ivan (levchenko-i) wrote :

Will be glad to help and provide you with this information tomorrow! thanks for the update on the matter!

Daniel Miles (themono) wrote :

To be honest, I'm not sure I will be able to help. As I said earlier, it is a flatmates laptop, and the odds of him letting me put gutsy on it before release would tend towards nil.

Ning (news-james) wrote :

I still have feisty running on one of my systems and have collected the information as requested. I will keep feisty on this system and do not intend to regress it. This system has multiple PATA drives none of which DMA can be enabled. The system was upgraded from edgy and didn't have the /dev/sdx naming issue. In this instance, the lack of DMA is severely limiting I/O throughput and restricting it to a little over 5MB/sec.

Output from the following commands have been attached:

uname -a
dmesg
lspci -vvn
hdparm -a /dev/hda
hdparm -d1 /dev/hda
hdparm -tT /dev/hda
hdparm -I /dev/hda
lsmod

comgen (ndatus) wrote :

Temp fix

* Use cation and research first, the following " HAS " worked for me
* under Feisty and Gusty " SO FAR ".
**** I will NOT BE held responsible for any damage, I'm passing this on as an
* option / quick fix. Later in the build the following might break your system.
* Keep a note handy with ALL changes you make for future reference.

***** I am not associated with Ubuntu or the Ubuntu development team(s), just a user. *****

Edit /etc/fstab and /boot/grub/menu.lst ( back them up first )

1. sudo cp /boot/grub/menu.lst /boot/grub/menu-lst-bk-UUID
2. sudo cp /etc/fstab /etc/fstab-bk-UUID

Notes: sda = hda sda1 = hda1 sdb = hdb and so on
====================================
Comment out or replace ALL UUID entries in /etc/fstab with your drive(s)

1. sudo nano /etc/fstab

    Example:
    # /dev/sda1
    UUID=e0b77534-74ca-4e25-af29-773fc0d94fc7 / ext3 defaults,noatime,errors=remount-ro 0 1
    to:
    /dev/hda1 / ext3 defaults,noatime,errors=remount-ro 0 1

    ##### /dev/sda5
    #####UUID=daf35485-6c6e-491a-8287-73cd3f07f6fd
    /dev/hda5 none swap sw 0 0

=====================================
Optional ( I think ) I did not alter my menu.lst and works just fine,
here's the quick and dirty, if you wish to alter this as well.

Comment out or replace ALL UUID entries in /boot/grub/menu.lst with your drive

1. sudo nano /boot/grub/menu.lst ( hda = the root boot drive, hda1 hda2 hdb1......)

    example:
    # kopt=root=UUID=e0b77534-74ca-4e25-af29-773fc0d94fc7 ro
    to: kopt=root=/dev/hda ro

    kernel /boot/vmlinuz-2.6.22-9-386 root=UUID=e0b77534-74ca-4e25-af29-773fc0d94fc7 ro
    to: kernel /boot/vmlinuz-2.6.22-9-386 root=/dev/hda ro

Reboot !

Good Luck !

Henrik Nilsen Omma (henrik) wrote :

Ivan, did you get a chance to gather the requested gutsy information?

ivan (levchenko-i) wrote :

HI Henrik, no unfortunately. I was quite busy for the past month. i was in the process of changing jobs/towns. i had gutsy installed my work pc. now i'm using a dell 640m and i just don't have the time now to test tribe cd's because i really need to be productive with stable software. just for the sake of it, the hard drive works like a charm. I still can't enable 32 bit transfer or dma on it, but -i shows that udma5 is being used for the drive.

ivan (levchenko-i) wrote :
Andrea76 (andrea76) wrote :

when will the ubuntu team fix this annoying bug?????????????

Gerv (gerv) wrote :

As far as I can tell, gutsy just disabled DMA on the CD-ROMs on both my bog-standard Dell desktop and my Thinkpad X40. This is not obscure hardware, and yet I can't watch DVDs without jerking on a 3Ghz processor.

Any information you need, I'll provide. But please sort this out.

Gerv

Ludovic Lebègue (llebegue) wrote :

I don't have any more reading/writing lags on Gutsy on the same platform

hdparm - i :

 Model=Hitachi HTS541612J9SA00 , FwRev=SBDOC70P, SerialNo= SB3D00E5G289TA
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=DualPortCache, BuffSize=7516kB, MaxMultSect=16, MultSect=?16?
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=234441648
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=yes: mode=0x80 (128) WriteCache=enabled
 Drive conforms to: ATA/ATAPI-7 T13 1532D revision 1: ATA/ATAPI-2,3,4,5,6,7

hdparm -tT

 Timing cached reads: 6066 MB in 1.99 seconds = 3043.46 MB/sec
 Timing buffered disk reads: 108 MB in 3.01 seconds = 35.83 MB/sec

uname -r :
2.6.22-14-generic

Patryk Szulczyk (soulcheck) wrote :

Same problems here on gutsy. Got 7200 hitachi pata drive, wich reports that it should support udma5. It's set on udma2 and hdparm can't change this parameter (or any other). The read/write times are making me really annoyed.

hdparm -i /dev/sda:

 Model=HTS721010G9AT00 , FwRev=MCZOA51A, SerialNo= MPC0N7Y0H8P3UL
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=DualPortCache, BuffSize=7539kB, MaxMultSect=16, MultSect=?16?
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=195371568
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 *udma2 udma3 udma4 udma5
 AdvancedPM=yes: mode=0x80 (128) WriteCache=enabled
 Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a: ATA/ATAPI-2,3,4,5,6

hdparm -tT:

Timing cached reads: 1390 MB in 2.00 seconds = 695.08 MB/sec
Timing buffered disk reads: 18 MB in 3.46 seconds = 5.20 MB/sec

uname -r:

2.6.22-14-generic

hdparm -d1 /dev/sda:

setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device

Ravindran K (ravindran-k) wrote :

I also have the same issue..

I observe that DMA is not enabled on my HDDs and I'm unable to enable
them using hdparm. I have no idea how to accomplish the same using sdparm
As a result, the drives are running slower.

Apparently, this due to the conversion of HDX to SDX (hda to sda) in recent Ubuntu releases. Not sure when this started, (I'm tried the Temp fix but still the drives come us as sda..sdb ...).

Some info below on messages I get:
____________________________________________________

 hdparm -i /dev/sda

/dev/sda:

 Model=QUANTUM FIREBALLlct15 20 , FwRev=A01.0F00, SerialNo=613024132415
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=32256, SectSize=21298, ECCbytes=4
 BuffType=DualPortCache, BuffSize=418kB, MaxMultSect=16, MultSect=?16?
 CurCHS=17475/15/63, CurSects=16513875, LBA=yes, LBAsects=39876480
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 *udma2 udma3 udma4
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: ATA/ATAPI-5 T13 1321D revision 1: ATA/ATAPI-1,2,3,4,5

 * signifies the current active mode

root@homeserver:~# hdparm -i /dev/sdb

/dev/sdb:

 Model=ST380011A , FwRev=8.01 , SerialNo=4JV1QKYD
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=unknown, BuffSize=2048kB, MaxMultSect=16, MultSect=?16?
 CurCHS=17475/15/63, CurSects=16513875, LBA=yes, LBAsects=156301488
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 *udma2 udma3 udma4 udma5
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: ATA/ATAPI-6 T13 1410D revision 2: ATA/ATAPI-1,2,3,4,5,6

 * signifies the current active mode

root@homeserver:~#
____________________________________________________
root@homeserver:~# hdparm -d1 -X66 /dev/sda

/dev/sda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Inappropriate ioctl for device
 setting xfermode to 66 (UltraDMA mode2)
SG_IO: bad/missing ATA_16 sense data:: 70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 HDIO_DRIVE_CMD(setxfermode) failed: Input/output error
root@homeserver:~# hdparm -d1 -X66 /dev/sdb

/dev/sdb:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Inappropriate ioctl for device
 setting xfermode to 66 (UltraDMA mode2)
SG_IO: bad/missing ATA_16 sense data:: 70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 HDIO_DRIVE_CMD(setxfermode) failed: Input/output error

David Császár (p5) wrote :

same problem with an mp995 and the current xubuntu 7.10 iso.

Me too with Ubuntu 7.10 server.

This is a devastating loss of performance and functionality; it means my machine is now unusable as a media server. If a fix is not imminent, I'll have to revert to an older operating system. It was all working perfectly with Suse 10.

ivan (levchenko-i) wrote :

2 Graham Borland:
Don't count on it. Check the net, there a lot of bugs like this that have not been updated for a long time, and several of them even have the fixes in the comments already.... nobody is going to fix them any time soon and probably not this one..

ivan (levchenko-i) wrote :

And as you can see, this bug has not been even updated for the 8.10 relase (i'm not even saying that they ignored it in the 7.10 release).
It hasn't been updated since it was declined for feisty..

David Császár (p5) wrote :

concerning mp995:
if i check with hdparm -i the default setting seems alright.
i just got confused by the output without -i in combination with the system being on 99% iowait for hours after the installation. but that is probably another problem (my guess is slocate).

tatu (tatu) wrote :

I had the same problem, performance sucked, disks went from sdaX to hdaX, audio playback was lousy, etc.

I was able to fix it by adding hda=noprobe into kernel boot parameters.

So I changed my /boot/grub/menu.lst kernel line from (only relevant parts shown)

kernel /boot/vmlinuz-2.6.24.2 root=/dev/hda5

to (note hda5 => sda5)

kernel /boot/vmlinuz-2.6.24.2 hda=noprobe hdb=noprobe root=/dev/sda5

This way eide stays away from drives and lets the sata found them later. Naturally you should adjust your kernel name, root and drives based on what you have.

With this change hdparm -t went from 2,8 MB/s to 59 MB/s. And audio plays uninterrupted even with lots of disk access. And disks are called sdaX again.

Jan Niklas Hasse (jhasse) wrote :

Hi, i just found this bug report and i've got exactly the same problem.

Just a question: Why is the importance set to "medium"? Shouldn't it be set to "critical" as it stops me from using Ubuntu >7.04 at all.

cbaptista (cb-cb) wrote :

Hi,
same problem here. I have 25 pc's with this problem.
I agree with Jan Niklas Hasse, this bug should be critical! It's impossible to let students use these pc's.

Does anyone have a clue if this will be fixed soon? If not I will have to reinstall 25 opensuse's.

Thanks

##
IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE]
##

##
hdparm -i /dev/sda

/dev/sda:

 Model=ST320410A , FwRev=3.35 , SerialNo=5FG0SN8R
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=unknown, BuffSize=2048kB, MaxMultSect=16, MultSect=?16?
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=39851760
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=yes: unknown setting WriteCache=enabled
 Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6

 * signifies the current active mode
##

##
hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads: 578 MB in 2.00 seconds = 288.69 MB/sec
 Timing buffered disk reads: 32 MB in 3.15 seconds = 10.17 MB/sec
###

C. Cooke (ccooke) wrote :

Since it's now almost certainly too late to fix in Gutsy, I've added the hardy kernel as 'Incomplete'. I've also done a little research into the problem; it appears to be a known problem with libata and certain chipsets: http://linux-ata.org/faq.html#combined

The link above suggests several remedies to the problem:

    * Recommended (where BIOS permits): Change BIOS IDE mode from "legacy" or "combined" mode to "AHCI" (recommended), "RAID" or "native".
    * Boot with the kernel commandline parameter "combined_mode=libata" or "combined_mode=ide" to allow the specified driver to claim all IDE ports.
    * Disable libata (CONFIG_ATA) entirely, and enable CONFIG_BLK_DEV_IDE_SATA.
    * (newer choice, with less field testing) Disable CONFIG_IDE, and permit libata to run all your IDE and SATA ports.

What we need now is confirmation that these workarounds - *particularly* the recommended one - work with the bug. Since Hardy is now the development version, it would be most helpful to receive notification that the bug is still present *IN HARDY*, *AFTER* the fixes are in place - although I'm sure we'd prefer to hear that this *does* fix it.

Changed in linux-source-2.6.24:
status: New → Incomplete
C. Cooke (ccooke) wrote :

To clarify:

Reports that the bug is still present in Hardy after trying the fixes need to contain:

   * The output of 'dmesg'
   * The output of 'lspci -vvn'
   * The output of 'sudo hdparm -i /dev/sdN' (where sdN is your disk).

Hope this helps.

Jan Niklas Hasse (jhasse) wrote :

I tried the second fix (first did not work with my bios), but nothing changed. I attached the 3 outputs with combined_mode=ide.

jap1968 (jap1968) wrote :

I am doing tests on several machines with Ubuntu 8.04 and I am experiencing a similar problem. I have opened a new bug (#195221), since I think both bugs are related, but I do not think that the problem is the same of this one.

I am working with a SSD, identical to a high speed (300x) compactflash card. The device supports up to UDMA66, but I only achieve UDMA33, so I am limited to work at 50% of the device speed.

Recent versions of kernels support new parameters in the libata module. So far, I have tested with "libata.dma=4" [http://www.kernel.org/doc/Documentation/kernel-parameters.txt] (supported by the libata module that I am using), but with no success. In fact, I already have dma support, but not the desired mode (udma66).

Currently, my only hope is just to wait until the new set of libata parameters is available in the next kernel releases, just to set the needed values "libata.force=80c,udma4". This new parameter is already documented in kernel-parameters, but still not available in the latest Ubuntu kernel.

Anyone here has been able to use CF cards or SSD drives at UDMA66 or higher modes?

heret1c (swt-mail2norway) wrote :

Must report same problem. I have an oldish laptop (about 5 yrs), a Dell Latitude D500. I replaced the old HD which died last week with a brand new one, tried all the boot modifications, with no luck. Seeing this problem was introduced in the Feisty version,.and it has a serious impact on those it affects (quite a few!) - could the priority of sorting out this bug be elevated to the highest level?

C. Cooke (ccooke) wrote :

Jan, heret1c: Both your dmesg dumps are unusable - you have too many warnings from network drivers. Perhaps if you included /var/log/dmesg ? That should contain the bootup dmesg output.

Jan Niklas Hasse (jhasse) wrote :
Recalcitrante (ignaciovicario) wrote :

The same problem.

I couldn't try the first remedy of C. Cooke for the same reason as Heret1c: and old Dell (Inspiron 3700) with a new disk installed, which doesn't allow me to modify the BIOS.

"combined_mode=libata" or "combined_mode=ide" as kernel parameter didn't work.

Disable libata (CONFIG_ATA) entirely, and enable CONFIG_BLK_DEV_IDE_SATA solved the problem, but I also changed some other things, as enabling framebuffer, including IDE controller in the kernel ajd disabling kernel debugging. I attach also the .config file

heret1c (swt-mail2norway) wrote :
Download full text (5.6 KiB)

Here's a fresh dmesg. Recalcitrante - did "hdparm -d1" etc work after modifying the kernel? I am not a programmer (some may have guessed...;) so messing around with the kernel is a bit like a layman performing brain surgery. So. Should I wait until there is an official fix, or attempt to learn the black art of kernel building from scratch?

Here's a fresh hdparm -Tt, followed by smartctl --all (for good measure):

/dev/sda:
 Timing cached reads: 522 MB in 2.00 seconds = 260.48 MB/sec
 Timing buffered disk reads: 112 MB in 3.13 seconds = 35.76 MB/sec
(A bit sluggish in my book)

=== START OF INFORMATION SECTION ===
Device Model: SAMSUNG HM080GC
Serial Number: S15HJD0Q204757
Firmware Version: LP100-10
User Capacity: 80,026,361,856 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: ATA/ATAPI-7 T13 1532D revision 0
Local Time is: Wed Feb 27 13:45:07 2008 CET

==> WARNING: May need -F samsung or -F samsung2 enabled; see manual for details.

SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Disabled.
Self-test execution status: ( 32) The self-test routine was interrupted
                                        by the host with a hard or soft reset.
Total time to complete Offline
data collection: ( 31) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 31) minutes.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate 0x000f 100 100 051 Pre-fail Always - 0
  3 Spin_Up_Time 0x0007 252 252 025 Pre-fail Always - 2062
  4 Start_Stop_Count 0x0032 100 100 000 ...

Read more...

Recalcitrante (ignaciovicario) wrote :

heret1c: yes of course "hdparm -d1" works, both for hard disk and cdrom. And you don't need to be a programmer to compile the kernel (I am not a programmer). You will find different howtos to learn and there are forums where to post questions abut kernel compiling. I'm afraid the site administrators won't like discussions out of the bug issue.

Ravindran K (ravindran-k) wrote :
Download full text (26.3 KiB)

Hi all,

I think Im no more facing the issue in Hardy heron. Not sure @ which point it got resolved, but I would like to add that recently I changed my BIOS setting to AHCI. (Intel ICH9 for SATA and Marvel for IDE) my Motherboard is an Intel DG33TL. Some info below which should be use ful, /dev/sda is a SATA drive. Remaining IDE. There is no consistency in performance but it is far better that wht other facing the issue are getting.

root@ravi-desktop:/home/ravi# hdparm -i /dev/sda

/dev/sda:

 Model=ST3250310AS , FwRev=3.AAA , SerialNo= 5RY0FCF1
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=?16?
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=488397168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7

 * signifies the current active mode

root@ravi-desktop:/home/ravi# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads: 7378 MB in 2.00 seconds = 3692.40 MB/sec
 Timing buffered disk reads: 212 MB in 3.01 seconds = 70.53 MB/sec
root@ravi-desktop:/home/ravi# hdparm -i /dev/sdb

/dev/sdb:

 Model=ST3160021A , FwRev=8.01 , SerialNo=3LJ225LX
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=unknown, BuffSize=2048kB, MaxMultSect=16, MultSect=?16?
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: ATA/ATAPI-6 T13 1410D revision 2: ATA/ATAPI-1,2,3,4,5,6

 * signifies the current active mode

root@ravi-desktop:/home/ravi# hdparm -tT /dev/sdb

/dev/sdb:
 Timing cached reads: 7394 MB in 2.00 seconds = 3700.26 MB/sec
 Timing buffered disk reads: 126 MB in 3.02 seconds = 41.69 MB/sec
root@ravi-desktop:/home/ravi# hdparm -i /dev/sdc

/dev/sdc:

 Model=ST3250820A , FwRev=3.AAE , SerialNo= 6QE199V0
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=?16?
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=488397168
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7

 * signifies the current active mode

root@ravi-desktop:/home/ravi# hdparm -tT /dev/sdc

/dev/sdc:
 Timing cached reads: 7064 MB in 2.00 seconds = 3534.57 MB/sec
 Timing buffered disk reads: 232...

Jan Niklas Hasse (jhasse) wrote :

I don't have a ThinkPad. How can i found out whether i got an ICH6-M?

Arthur (moz-liebesgedichte) wrote :

Still present with Hardy for me on the IDE DVD drive:
UDMA modes: udma0 udma1 *udma2 udma3 udma4
[ 41.718086] ata9.00: limited to UDMA/33 due to 40-wire cable
Attaching dmesg / lspci -vvn / hdparm -i /dev/scd1.

Jan Niklas Hasse (jhasse) wrote :

@rockonfred
I got an ICH7 rev 02 (Intel 82801G). The tips in the wiki are for another problem (HDIO_SET_DMA failed: Operation not permitted).

iltony (iltony) wrote :

I've experienced as well this dma problem under ubuntu hardy, with kernel 2.6.24.x series. The second fix suggested by C. Cooke worked like a charm on my system. I've added "combined_mode=libata" option to /boot/grub/menu.lst file and ran update-grub to permanently boot the system with this option on.

In particular:
    * Recommended (where BIOS permits): Change BIOS IDE mode from "legacy" or "combined" mode to "AHCI" (recommended), "RAID" or "native". (UNAPPLICABLE)
    * Boot with the kernel commandline parameter "combined_mode=libata" or "combined_mode=ide" to allow the specified driver to claim all IDE ports. (WORKS!!!)
    * Disable libata (CONFIG_ATA) entirely, and enable CONFIG_BLK_DEV_IDE_SATA. (NOT TESTED)
    * (newer choice, with less field testing) Disable CONFIG_IDE, and permit libata to run all your IDE and SATA ports. (NOT TESTED)

My System configuration is:
cla@cla-desktop:~$ lspci
00:00.0 Host bridge: Intel Corporation 82845 845 [Brookdale] Chipset Host Bridge (rev 03)
00:01.0 PCI bridge: Intel Corporation 82845 845 [Brookdale] Chipset AGP Bridge (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 12)
00:1f.0 ISA bridge: Intel Corporation 82801BA ISA Bridge (LPC) (rev 12)
00:1f.1 IDE interface: Intel Corporation 82801BA IDE U100 Controller (rev 12)
00:1f.2 USB Controller: Intel Corporation 82801BA/BAM USB Controller #1 (rev 12)
00:1f.3 SMBus: Intel Corporation 82801BA/BAM SMBus Controller (rev 12)
00:1f.4 USB Controller: Intel Corporation 82801BA/BAM USB Controller #1 (rev 12)
01:00.0 VGA compatible controller: nVidia Corporation NV11 [GeForce2 MX/MX 400] (rev b2)
02:01.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 42)
02:02.0 Modem: PCTel Inc HSP MicroModem 56 (rev 02)
02:06.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 07)
02:06.1 Input device controller: Creative Labs SB Live! Game Port (rev 07)

hdparm output
Without fix:
cla@cla-desktop:~$ sudo hdparm -tT /dev/sda1

/dev/sda1:
 Timing cached reads: 402 MB in 2.01 seconds = 200.20 MB/sec
 Timing buffered disk reads: 72 MB in 3.00 seconds = 10.98 MB/sec

With fix:
cla@cla-desktop:~$ sudo hdparm -tT /dev/sda1

/dev/sda1:
 Timing cached reads: 402 MB in 2.01 seconds = 200.20 MB/sec
 Timing buffered disk reads: 72 MB in 3.00 seconds = 23.98 MB/sec

Changed in linux-source-2.6.22:
status: Incomplete → Won't Fix
Changed in linux:
status: Incomplete → New
Ilya Mezhirov (alih) wrote :

I've fixed this by switching to IDE drivers.
To do this, append those lines to /etc/initramfs-tools/modules:

atiixp # change to your chipset driver!
ide_core
ide_cd
ide_disk
ide_generic
blacklist ata_generic
blacklist pata_atiixp
blacklist pata_acpi

Maybe you don't need the blacklist stuff, I'm not sure. The chipset driver should be one of those printed by "lsmod | grep permanent".
Then update initramfs by "sudo update-initramfs -u" and change all /dev/sda to /dev/hda in /boot/grub/menu.lst and /etc/fstab. Also probably that UUID stuff should be changed to /dev/hda* too.
Use at your own risk, of course.

Hi Guys,

There hasn't been any recent comments lately so I'm curious if someone would care to confirm this is still an issue with the latest Alpha for the upcoming Intrepid Ibex 8.10 which has a 2.6.26 based kernel - http://www.ubuntu.com/testing. Please let us know your results. If you still are having issue, I'm curious if booting with "all_generic_ide" helps or not? Thanks.

Changed in linux:
status: New → Incomplete
Phillip Susi (psusi) wrote :

I'm not sure why this was left marked as New because it was declined and considered invalid a long time ago. It is very much intentional that libata does not support manual configuration of dma mode by the Linux Kernel developers. If libata is not automatically detecting and using the best mode that the chipset supports, a new bug should be filed stating that libata is not activating dma mode on that specific chipset.

Changed in linux:
status: Incomplete → Invalid
SabreWolfy (sabrewolfy) wrote :

The suggestions of "alih" few posts back resulted in slow HDD performance for me. Buffered reads went from 19MB/s to 3MB/s. I'm using a Via82Cxxx chipset, the drivers for which seem to have been removed from (at least) Hardy.

Ilya Mezhirov (alih) wrote :

Maybe from developers' viewpoint it's a feature, but from my viewpoint it's still a bug. I want to turn DMA *off*. Welcome to Asus A6R, the laptop from hell. Depending on DMA mode of the DVD drive and whether you're running X or not, either your USB controller or the network card might get frozen. The solution is to turn off DVD's DMA when you don't need it. Now if libata intentionally doesn't support that then I'm intentionally not using libata. By the way, libata also prevents hibernation on that laptop, so that's the second reason not to use it. The third reason is xine-check.
I would describe the bug as "giving the user not enough information about the choice of libata, its consequences, and the ways to fall back".

If it is intentional that libata has less functionality (and removing user configuration is removing functionality), then why use it? This has made my Asus L2D (SIS 5513 IDE / SIS 730 chipset) too slow to be any use since Feisty. It was (among other problems) for this kind of reduced functionality that I dumped MS OSes.

Lepe (alepe-com) wrote :

I updated from 2.6.24 to 2.6.27 (From Hardy to Intrepid) and my drives changed from hd* to sd*.
Since that change, all drives are very slow (HDD and DVD). For burning a 2Gb disk it took about an hour!
I have read many forums and I have tried several setups, specially with kernel options and in
 /etc/initramfs-tools/modules
I also followed "alih" recommendation without any success:

BEFORE:

/dev/sda:
 Timing cached reads: 858 MB in 2.00 seconds = 428.97 MB/sec
 Timing buffered disk reads: 64 MB in 3.02 seconds = 21.19 MB/sec

AFTER:

/dev/sda:
 Timing cached reads: 646 MB in 2.00 seconds = 322.90 MB/sec
 Timing buffered disk reads: 64 MB in 3.03 seconds = 21.12 MB/sec

Is there any way to change my drives to be hd* again?

Thank you

Lepe (alepe-com) wrote :

I kind solved my problem temporally:

I added Hardy repositories and installed only 2.6.24-21-generic.
I started with that kernel and my sd* became hd* and all the information/tune-up of hdparm
works just fine.

NOW:

/dev/hda:
 Timing cached reads: 918 MB in 2.00 seconds = 458.69 MB/sec
 Timing buffered disk reads: 98 MB in 3.10 seconds = 31.58 MB/sec

And not just that, now my DVD burner in K3B can burn at 4x (before was < 1x).

I will look forward to solve my problem in 2.6.27

P.S. I also tried to install kernel 2.6.28 from jaunty repos but the performance was even worst!

Davidiam (hectorjerezano) wrote :

Not sure If it same issue as I had experience with my intrepid upto date , Today after renting a dvd movie had similar issue as this bugs refers to , playing dvd movie with any player my cpu goes really high , playing the movie looks as if I am playing the movie in slow motion, reading the files from the DVD is really slow and copying the dvd it is really slow ,"any realted to dvd it is really slow and consuming high cpu.
But a week ago and before I rent every weekend a DVD movie to see it and clone it to a double layer dvd , had no problems what so ever playing nor copying the DVDs.
So I went and look at my history in aptitude and remember I just installed the DVDRIP and with it its pedencies;
anyevent-perl (1.02-0.2)
dvdrip (1:0.98.6-0.0ubuntu2)
dvdrip-doc (20030223-0.1)
fping (2.4b2-to-ipv6-15)
gocr (0.45-2)
gtk2-ex-formfactory-perl (0.65-0.0ubuntu1)
libevent-execflow-perl (0.63-0.0)
libevent-perl (1.11-1)
libevent-rpc-perl (1.00-1)
libintl-perl (1.16-4build1)
libio-socket-ssl-perl (1.13-1)
libjpeg-progs (6b-14)
libnet-ssleay-perl (1.35-1ubuntu1)
lsdvd (0.16-3)
ogmtools (1:1.5-3)
subtitleripper (0.3.4-0.5)
transfig (1:3.2.5-rel-3.1)
 So Today I uninstall them all , and everying went ok and back to normal operations of my DVD.So there is some bug in any of this package, could be lsdvd.

Davidiam (hectorjerezano) wrote :

I am sorry spoke too early.
 DVDRIP its ok , It was not DVDRIP the issue .

Some how I found in /etc/modprobe.d/options this 2 lines =

 # XXX: Ignore HPA by default. Needs to be revisted in jaunty
options libata dma=1 ignore_hpa=1

After removing that options for libata , update-initramfs -u and rebooting, now I Have no issues and reinstalled DVDRIP with it dependencies.

Can remember if I put that line there or by updating.

Curtis Hovey (sinzui) on 2012-05-29
Changed in linux-source-2.6.20 (Ubuntu):
assignee: Registry Administrators (registry) → nobody
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers