Re: DMA timeouts with JM20330 based SATA<->IDE bridge

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have similar problem with JM20330, but in my case it's connected
to arm board ide port (Cirrus Logic ep9315 SoC).
I'm using pata driver written long time ago by Alessandro Zumo
and Lennert Buytenhek, to which I added dma functionality (the driver
is not in mainline).

> At the other end, it's connected to a Seagate ST31500341AS
> SATA harddisk (well, that's kinda redundant ... ;-).
In my case, it's Seagate ST9120822AS.

> 
> Now, reading from the disk seems to work perfectly, but writing
> (dding /dev/zero to the block device) causes DMA timeouts every
> few hundred megabytes - in between the timeouts, though,
> throughput seems to be ok (~ 20 MB/s).
I can observe dma timeouts only when reading from disk, never when
writing.

> In the kernel log, the errors look something like this, with
> small variations (at least to my eyes ;-):
> 
> | ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
> | ata2.00: failed command: WRITE DMA EXT
> | ata2.00: cmd 35/00:00:67:19:4f/00:04:00:00:00/e0 tag 0 dma 524288 out
> |          res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
> | ata2.00: status: { DRDY }
> | ata2: link is slow to respond, please be patient (ready=0)
> | ata2: device not ready (errno=-16), forcing hardreset
> | ata2: soft resetting link
> | ata2.00: configured for UDMA/66
> | ata2.00: device reported invalid CHS sector 0
> | ata2: EH complete
> 
> That's all happening with a vanilla 2.6.33 (plus tuxonice, in case that
> could have any effect on this). The legacy IDE drivers behave similarly.
> 

My kernel log:

ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
ata1.00: failed command: READ DMA
ata1.00: cmd c8/00:08:70:39:a3/00:00:00:00:00/e3 tag 0 dma 4096 in
         res 40/00:80:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }
ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
ata1.00: failed command: READ DMA EXT
ata1.00: cmd 25/00:00:d0:2e:27/00:02:04:00:00/e0 tag 0 dma 262144 in
         res 40/00:80:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }
ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
ata1.00: failed command: READ DMA EXT
ata1.00: cmd 25/00:00:d0:28:9b/00:02:04:00:00/e0 tag 0 dma 262144 in
         res 40/00:80:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }

Kernel version doesn't have any impact (it was first observed about
two years ago, and with 2.6.32.8 behaviour is the same, during this
time I've never had any problems with ide drives connected directly).
I also tested jm20330 connected to old Celeron box (with VIA VT82C596B) and
it works reliably.

I think that the problem is with ep93xx ide controller (maybe working
too close to ide specs or so..), or maybe between drive and jm20330
(however I don't have any non-Seagate sata drive to test it).
Reading is probably much faster in my configuration (the green led
on converter board is constantly turned on during read, then suddenly
turns off and timeout occurs, during write I can only observe fast blinking,
maybe this is normal).

If there is any interest, I can post ep93xx pata driver to the list,
but it depends on ep93xx-dma-m2m patch, which is not in mainline too.

Rafał


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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux