public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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

 








  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox