[2.6.0-test11] VIA IDE DMA problems with sleeping harddisk

From: Claas Langbehn
Date: Tue Dec 16 2003 - 09:43:20 EST


Hello,


I have got two harddiscs in my system (hda, hdb) and an CD-R/W writer as
hdc. Both harddiscs are UDMA-100 drives. First of all, it is strange
that the drives are only set to a transfer rate of 88.8 MB/s and not
to 100MB/s (see below).


hdb is sleeping most of the time (hdparm -S), but when I need the drive,
it does not spin up fast enough, so that the kernel messages say:

Dec 16 15:13:14 kernel: hdb: dma_timer_expiry: dma status == 0x61
Dec 16 15:13:24 kernel: hdb: DMA timeout error
Dec 16 15:13:24 kernel: hdb: dma timeout error: status=0xd0 { Busy }
Dec 16 15:13:24 kernel:
Dec 16 15:13:24 kernel: hda: DMA disabled
Dec 16 15:13:24 kernel: hdb: DMA disabled
Dec 16 15:13:25 kernel: ide0: reset: success

In /proc/ide/via i see, that hda is using PIO now:

-------------------drive0----drive1----drive2----drive3-----
Transfer Mode: PIO UDMA UDMA PIO
Address Setup: 120ns 120ns 120ns 120ns
Cmd Active: 90ns 90ns 90ns 90ns
Cmd Recovery: 30ns 30ns 30ns 30ns
Data Active: 90ns 90ns 90ns 330ns
Data Recovery: 30ns 30ns 30ns 270ns
Cycle Time: 120ns 22ns 60ns 600ns
Transfer Rate: 16.6MB/s 88.8MB/s 33.3MB/s 3.3MB/s

When I re-enable DMA afterwards the messages say:

Dec 16 15:13:49 zoo kernel: blk: queue dfde1200, I/O limit 4095Mb (mask
0xffffffff)



- How do I increase the dma_timer_expiry so that DMA will
not be disabled so fast?

- Why does the kernel say "hdb: DMA disabled" but /proc/ide/via says
that DMA was only disabled on hda?
Is it a bug or is it enabled again without telling me?

- Which workaround should be considered?



Regards, Claas



# cat /proc/ide/via (with DMA enabled)

----------VIA BusMastering IDE Configuration----------------
Driver Version: 3.38
South Bridge: VIA vt8235
Revision: ISA 0x0 IDE 0x6
Highest DMA rate: UDMA133
BM-DMA base: 0xdc00
PCI clock: 33.3MHz
Master Read Cycle IRDY: 0ws
Master Write Cycle IRDY: 0ws
BM IDE Status Register Read Retry: yes
Max DRDY Pulse Width: No limit
-----------------------Primary IDE-------Secondary IDE------
Read DMA FIFO flush: yes yes
End Sector FIFO flush: no no
Prefetch Buffer: yes yes
Post Write Buffer: yes yes
Enabled: yes yes
Simplex only: no no
Cable Type: 80w 80w
-------------------drive0----drive1----drive2----drive3-----
Transfer Mode: UDMA UDMA UDMA PIO
Address Setup: 120ns 120ns 120ns 120ns
Cmd Active: 90ns 90ns 90ns 90ns
Cmd Recovery: 30ns 30ns 30ns 30ns
Data Active: 90ns 90ns 90ns 330ns
Data Recovery: 30ns 30ns 30ns 270ns
Cycle Time: 22ns 22ns 60ns 600ns
Transfer Rate: 88.8MB/s 88.8MB/s 33.3MB/s 3.3MB/s

# uname -a
Linux zoo 2.6.0-test11 #3 Mon Dec 1 19:57:51 CET 2003 i686 GNU/Linux

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