You are not logged in.
I'm trying to make a KingSpec PATA SSD work in a laptop, and I'm running into a problem. During the boot, right after triggering udev events, I get this:
ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
ata1.00: failed command: READ DMA
ata1.00: cmd c8/00:08:00:00:00:00/00:00:00:00:00/e0 tag 0 dma 4096 in
res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }
repeated several times, with ~10sec delays between them, then twenty or so attempts to kill modprobe, then the system proceeds to boot with DMA turned off on both the sdb (SSD) and sda (HDD). If I supply libata.dma=0 to the kernel, it boots without any delays but with DMA turned off. Except for disabled DMA, the drive appears to work well.
hdparm reports some quite high mode for the ssd (udma5, if I recall correctly), rather high cache reads, ~400MBps, but verly slow buffered disk reads, ~2.5MBps. And overall all disk operations are extremely slow, with ~100% cpu load (~65% iowait) and lags. The docs say the SSD supports 0xC8 READ DMA, and that the mode must be set beforehand using 0xEF SET FEATURES — which, I assume, libata does anyway.
Any ideas on how to make it work with DMA enabled? Also, any ideas on what's happening? Is there any way to check if I have a dead controller in the SSD, or is it something else? And, for that matter, why does it try to read the drive at all? I'm not trying to mount it at boot or anything.
Not sure if it's relevant, but the laptop is built on i915GM and I'm using ata_piix from linux-3.0.4-1.
I'm going to get an ide-to-usb dongle to test the drives, and probably try to boot with the older non-libata modules (if they are not completely deprecated yet), but maybe somebody had similar issues and has some advices before I do that?
Offline
Ok, problem solved, I switched to the old ide driver (instead of libata) and it all started working immediately, with DMA and all.
With libata, forcing the SSD into pio4 mode proved somewhat helpful, making the SSD work at its stated speed (and more than twice the maximum for pio4), but I only could get one device on the channel to work this way. Looks like something's wrong with the drive/bus initialization, but I didn't dig deeper.
Offline