From: Michael Frank <mhf@linuxmail.org>
To: Vojtech Pavlik <vojtech@sgo>, <mru@users.sourceforge.net>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [BUG?] SIS IDE DMA errors
Date: Sat, 27 Sep 2003 03:19:37 +0800 [thread overview]
Message-ID: <200309270319.37985.mhf@linuxmail.org> (raw)
In-Reply-To: <20030926183323.GA12614@ucw.cz>
On Saturday 27 September 2003 02:33, Vojtech Pavlik wrote:
> On Fri, Sep 26, 2003 at 07:46:03PM +0200, M?ns Rullg?rd wrote:
> > Vojtech Pavlik <vojtech@suse.cz> writes:
> >
> > >> > Actually, it's me who wrote the 961 and 963 support. It works fine for
> > >> > most people. Did you check you cabling?
> > >>
> > >> I'm dealing with a laptop, but I suppose I could wiggle the cables a
> > >> bit. I still doubt it's a cable problem, since reading works
> > >> flawlessly.
> > >
> > > Hmm, that's indeed interesting and it'd point to a driver problem -
> >
> > See, I told you :)
> >
> > > when reading, the drive is dictating the timing, but when writing, it's
> > > the controllers turn.
> > >
> > > So if the controller timing is not correctly programmed, reads function,
> > > but writes don't.
> >
> > Furthermore, short writes work just fine. The errors usually start
> > happening after about 100 MB at full speed. When copying from NFS
> > over a 100 MB/s network it usually goes a little longer, sometimes
> > even up to 500 MB. All this could indicate that there is some error
> > in the timing, and that it takes some time for it build up enough to
> > trigger the bad things. Or am I wrong?
>
> Well, yes. There's nothing to build up. There are no two timers to
> synchronize - basically the controller sends the data at a certain speed
> and the drive must be able to understand the data at that speed. So, if
> you configure the controller to UDMA133 and the drive can only do
> UDMA100, it'll fail sooner or later. It doesn't necessarily fail
> immediately, since the drive has some margin above its engineered speed
> that it'll be able to receive.
>
> > Why can't the drive give notice when it's ready to accept more data?
>
> It does, it does. The problem would only occur if the signalling rate
> was too high for the driver to receive it. If the drive's buffers are
> full, it'll signal the controller to delay sending, but first the data
> must reach the buffer.
>
> > That would seem like the simple solution, instead of trying to
> > synchronize the timers.
>
> There fortunately are no timers to be synchronized. However, you can't
> do the handshake at every single byte, that'd slow down the transfers
> considerablt.
>
> >
> > > Can you send me the output of 'lspci -vvxxx' of the IDE device?
> > > I'll take a look to see if it looks correct.
> >
> > Here you go:
>
> Thanks.
>
> > 00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev d0) (prog-if 80 [Master])
> > Subsystem: Asustek Computer, Inc.: Unknown device 1688
> > Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
> > Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
> > Latency: 128
> > Region 4: I/O ports at b800 [size=16]
> > 00: 39 10 13 55 07 00 00 00 d0 80 01 01 00 80 80 00
> > 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 20: 01 b8 00 00 00 00 00 00 00 00 00 00 43 10 88 16
> > 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 40: 31 81 00 00 31 85 00 00 08 01 e6 51 00 02 00 02
>
> Ok, this means:
>
> 31 - hda: 90ns data active time, 30 ns data recovery time (PIO4)
> 41 - hda: UDMA enabled, UDMA mode 5 (UDMA100)
> 00 - hdb: 240ns/360ns (PIO0) - no drive present
> 00 - hdb: UDMA disabled
> 31 - hdc: 90ns/30ns PIO4
> 85 - hdc: UDMA enabled, UDMA mode 2 (UDMA33)
> 00 - hdd: 240ns/360ns (PIO0) - no drive present
> 00 - hdd: UDMA disabled
>
> So the config is correct if you have /dev/hda your harddrive, that's
> capable of UDMA100 and /dev/hdc a CDROM and capable of UDMA33. Is that
> right?
>
> 08 - 80-wire cables (needed for UDMA44 and higher) NOT installed.
> FIFO threshold set to 3/4 for read and to 1/4 for write.
>
> 01 - IDE controller in compatibility mode. Native and test modes
> disabled. (normal)
>
> e6 - PCI burst enable, EDB R-R pipeline enable, Fast postwrite enable,
> device ID masqueraded as sis5513 (although real is 5517)
> channels 0 and 1 enabled in normal mode
>
> 51 - Postwrite enabled on hda and hdc, prefetch on hda only
>
> 00 02 - 512 bytes prefetch size for hda
> 00 02 - 512 bytes prefetch size for hdc
>
> All this is OK, possibly except for the 80-wire cable not being present,
> but if this is a notebook, there might be a completely different cable
> type than what's standard, and the detection might not work there.
>
> > 50: 01 00 01 06 00 00 00 00 00 00 00 00 00 00 00 00
> > 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
> > >> It appears to me that during heavy IO load, some DMA interrupts get
> > >> lost, for some reason.
> > >
> > > Well, I've got this feeling that not just IDE interrupts get lost under
> > > heavy IO load with recent kernels ...
> >
> > Like mouse and keyboard...
>
> Like everything. But only for mouse, keyboard, timer and ide it HURTS.
>
> --
> Vojtech Pavlik
> SuSE Labs, SuSE CR
>
>
Was running 2.4.22.
Now running 2.6.0-test5. Fresh boot.
00:0f.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Subsystem: Realtek Semiconductor Co., Ltd. RT8139
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (8000ns min, 16000ns max)
Interrupt: pin A routed to IRQ 11
Region 0: I/O ports at e000 [size=256]
Region 1: Memory at eb102000 (32-bit, non-prefetchable) [size=256]
Expansion ROM at <unassigned> [disabled] [size=64K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
00: ec 10 39 81 07 00 90 02 10 00 00 02 00 20 00 00
10: 01 e0 00 00 00 20 10 eb 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 ec 10 39 81
30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 01 20 40
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
I am surprised at your analysis of the pci bus data. By what you
stated my drive(r) should be doing PIO ;)
50: 01 00 c2 f7 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
/dev/hda:
Timing buffer-cache reads: 128 MB in 0.36 seconds =352.67 MB/sec
Timing buffered disk reads: 64 MB in 1.20 seconds = 53.25 MB/sec
[root@mhfl4 03:10:20 mhf]# v ht
/dev/hda:
Timing buffer-cache reads: 128 MB in 0.37 seconds =346.00 MB/sec
Timing buffered disk reads: 64 MB in 1.20 seconds = 53.21 MB/sec
It does 53MB/s and by earlier drive info as mailed drive reports set to udma5.
Regards
Michael
next prev parent reply other threads:[~2003-09-26 19:21 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-26 12:30 [BUG?] SIS IDE DMA errors Måns Rullgård
2003-09-26 14:08 ` Michael Frank
2003-09-26 14:07 ` Måns Rullgård
2003-09-26 15:32 ` Michael Frank
2003-09-26 15:38 ` Måns Rullgård
2003-09-26 19:44 ` Michael Frank
2003-09-29 9:23 ` Måns Rullgård
2003-09-29 13:12 ` Michael Frank
2003-09-26 16:59 ` Vojtech Pavlik
2003-09-26 17:27 ` Måns Rullgård
2003-09-26 17:53 ` Vojtech Pavlik
2003-09-26 17:46 ` Måns Rullgård
2003-09-26 18:33 ` Vojtech Pavlik
2003-09-26 19:19 ` Michael Frank [this message]
2003-09-27 6:13 ` Vojtech Pavlik
2003-09-27 6:40 ` Michael Frank
2003-09-29 9:22 ` Måns Rullgård
2003-09-29 10:01 ` Vojtech Pavlik
2003-10-02 0:32 ` Michael Frank
2003-09-26 18:29 ` Michael Frank
2003-09-29 11:18 ` Lionel Bouton
2003-09-26 18:15 ` Michael Frank
2003-09-26 18:22 ` Michael Frank
2003-10-03 8:38 ` [BUG?] lost interrupt (was: SIS IDE DMA errors) David Caldwell
2003-10-03 9:08 ` [BUG?] lost interrupt Måns Rullgård
2003-10-03 20:07 ` David Caldwell
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=200309270319.37985.mhf@linuxmail.org \
--to=mhf@linuxmail.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mru@users.sourceforge.net \
--cc=vojtech@sgo \
/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.