linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Promise IDE DMA issue
@ 2005-01-02 17:37 John Wong
  2005-01-03 18:00 ` Jeff Garzik
  0 siblings, 1 reply; 5+ messages in thread
From: John Wong @ 2005-01-02 17:37 UTC (permalink / raw)
  To: linux-kernel

I recently upgraded fron a nVidia nForce2 MCP-T based A7NX-DX
motherboard to an A8V DX, Via K8T800 Pro.  Now occassionally, I get 
DMA issues on a drive attached to a Promise 133 TX2 controller (20269).

Jan  1 11:14:51 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:16:01 gambit kernel: hdh: dma_timer_expiry: dma status == 0x64
Jan  1 11:16:01 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:16:01 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:16:01 gambit kernel: hde: lost interrupt
Jan  1 11:16:01 gambit kernel: PDC202XX: Secondary channel reset.
Jan  1 11:16:01 gambit kernel: hdh: DMA interrupt recovery
Jan  1 11:16:01 gambit kernel: hdh: lost interrupt
Jan  1 11:16:01 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:16:01 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:16:01 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:16:01 gambit kernel: hde: lost interrupt
Jan  1 11:16:01 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:16:01 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:18:31 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:18:31 gambit kernel: hde: lost interrupt
Jan  1 11:18:31 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:18:31 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:18:31 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:18:31 gambit kernel: hde: lost interrupt
Jan  1 11:18:31 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:18:31 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:18:31 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:18:31 gambit kernel: hde: lost interrupt
Jan  1 11:18:31 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:18:31 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:18:31 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:18:31 gambit kernel: hde: lost interrupt
Jan  1 11:18:31 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:19:31 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:19:31 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:19:31 gambit kernel: hde: lost interrupt
Jan  1 11:19:31 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:19:31 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:19:31 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:19:31 gambit kernel: hde: lost interrupt
Jan  1 11:19:31 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:19:31 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:19:31 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:19:31 gambit kernel: hde: lost interrupt
Jan  1 11:19:31 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:19:31 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:19:31 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:19:31 gambit kernel: hde: lost interrupt
Jan  1 11:19:51 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:20:01 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:20:01 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:20:01 gambit kernel: hde: lost interrupt
Jan  1 11:20:21 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:20:31 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:20:31 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:20:31 gambit kernel: hde: lost interrupt
Jan  1 11:20:51 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:21:01 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:21:01 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:21:01 gambit kernel: hde: lost interrupt
Jan  1 11:21:21 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:21:31 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:21:31 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:21:31 gambit kernel: hde: lost interrupt
Jan  1 11:21:51 gambit kernel: hde: dma_timer_expiry: dma status == 0x64
Jan  1 11:22:01 gambit kernel: PDC202XX: Primary channel reset.
Jan  1 11:22:01 gambit kernel: hde: DMA interrupt recovery
Jan  1 11:22:01 gambit kernel: hde: lost interrupt

hde and hdh are identical Seagate ST3200822A
hdf and hdg are Maxtor 6Y120P0 and 6Y120L0, however, they weren't
mounted and are manually mounted as needed as they are FAT32 and NTFS.

Jan  2 06:25:35 gambit kernel: hde: dma_intr: status=0x50 { DriveReady
SeekCompl
ete }
Jan  2 06:25:35 gambit kernel: 
Jan  2 06:25:35 gambit kernel: ide: failed opcode was: unknown

The above happened at 6:25 which coincides with Debian's cron.daily
runs (most likely the updating of the locate database).


I've seen http://seclists.org/lists/linux-kernel/2003/Oct/4754.html
where someone suggests disabling autotune to work around the problem.
Without DMA, the DMA problem shouldn't happen, but this would slow
things down.

http://www.uwsg.iu.edu/hypermail/linux/kernel/0412.2/1569.html
mentions about needing multiple independent PCI buses for more than 2
DMA transfers at a time.

My lspci output from the old A7NX (nVidia nForce2) does appear to have 
more PCI buses.  It looks to have a 0, 1, 2, 3 with 3 looking to be the 
AGP bus.  The A8V (Via K8T800 Pro) on the other hand looks to have just 
0, and 1 with 1 being the AGP bus.


John

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-01-04  0:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-01-02 17:37 Promise IDE DMA issue John Wong
2005-01-03 18:00 ` Jeff Garzik
2005-01-03 21:52   ` John Wong
2005-01-03 22:22     ` Joel Cant
2005-01-04  0:27       ` John Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).