From: Claas Langbehn <claas@rootdir.de>
To: linux-kernel@vger.kernel.org
Cc: andre@linux-ide.org, chb@muc.de
Subject: [2.6.0-test11] VIA IDE DMA problems with sleeping harddisk
Date: Tue, 16 Dec 2003 15:38:08 +0100 [thread overview]
Message-ID: <20031216143808.GA11517@rootdir.de> (raw)
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
next reply other threads:[~2003-12-16 14:38 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-16 14:38 Claas Langbehn [this message]
2003-12-17 18:46 ` [2.6.0-test11] VIA IDE DMA problems with sleeping harddisk Vojtech Pavlik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20031216143808.GA11517@rootdir.de \
--to=claas@rootdir.de \
--cc=andre@linux-ide.org \
--cc=chb@muc.de \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.