tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Interrupt problems on NetBSD/i386 5.0.1


since my box had been upgraded from 3.0.1 to 5.0.1, there
seem to be problems related to interrupt handling. I had
originally reported these problems on netbsd-users@ (without
much feed-back) but maybe the tech-kern@ list is more

Currently, my gut feeling is that the "viaide lost interrupt"
problem is unrelated to the other ones and might stem from
an implicit setting of a controller register performed when
the autoconfig procedure finds a wd attached to the controller.
If there is no wd attached to the controller, the registers are
left in a different state. Could this be an explanation?

Although I first thought that the network problem was somehow
related to ACPI, there are still effects which show up when
both audio and network are active simultaneously:

1. Sometimes traffic via rtk0 stops and resumes after ifconfig
   down and then up again. I have once seen a message "rtk0:
   watchdog timeout" or similar on the console.

2. Audio output (e.g. DVD playback) "stumbles": you hear some
   sort of echo or chopping; maybe there is a sequencing
   problem like the second half of a (say) 1k block of audio
   data being played before the first half. The probability
   for this effect seems to be correlated to the amount of
   network traffic: if there is no program running concurrently
   which generates (occasional) network traffic of significant
   amount, audio playback works correctly over long periods in

Currently I am not sure whether to file a PR as I don't have
a clear picture of the error(s) yet. On the other hand, I have
no idea where to look next. Should I file PRs nevertheless?

What I can say is that I have not seen the network/audio
problem on 3.0.1. I cannot state whether the lost interrupt
on viaide would also show up on 3.0.1 as I have no 3.0.1
reference setup without any hard disk connected to that

Kind regards

PS: Please CC me as I have not subscribed to tech-kern.
--- Begin Message ---

after upgrading (from 3.0.1) to 5.0.1, I occasionally encounter
lock-ups of different subsystems: sometimes the X server freezes after
hitting ENTER in the un-lock dialog (KDE), sometimes the audio driver
becomes unresponsive and threads doing audio output freeze during
device I/O, sometimes network traffic stops and only continues after
switching the interface down and up again. Also, cd0 drive frequently

viaide0:1:0: lost interrupt
        type: atapi tc_bcount: 1028 tc_skip: 1024

(The latter might also be the reason for *very* slow start-up of video
DVDs in vlc.)

I first suspected a problem with interrupt assignment as the source of
the problem (configuration via ACPI lead to irq 10 for both auvia0 and
rtk0. Removing ACPI support from the kernel seems to avoid the above
network problem but still I have the other problems which might also
be interrupt related.

I have no idea where to look next. Do you have any advice? My current
dmesg output is included below.

Kind regards

BTW, neither removing DRM support from the kernel nor enabling the
primary channel of viaide0 changes the situation.

Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 5.0.1 (HELIOS-$Revision: 1.19 $) #0: Fri Dec 18 23:57:21 CET 2009
total memory = 255 MB
avail memory = 246 MB
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
VIA Technologies, Inc. VT8363 ( )
mainbus0 (root)
cpu0 at mainbus0: AMD 686-class, 797MHz, id 0x631
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: vendor 0x1106 product 0x0305 (rev. 0x03)
agp0 at pchb0 (v2): aperture at 0xd0000000, size 0x10000000
ppb0 at pci0 dev 1 function 0: vendor 0x1106 product 0x8305 (rev. 0x00)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
vga0 at pci1 dev 0 function 0: vendor 0x1002 product 0x5046 (rev. 0x00)
wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
r128drm0 at vga0: ATI Rage 128 Pro PF (AGP) (unit 0)
r128drm0: AGP at 0xd0000000 64MB
r128drm0: Initialized r128 2.5.0 20030725
pcib0 at pci0 dev 7 function 0
pcib0: vendor 0x1106 product 0x0686 (rev. 0x40)
viaide0 at pci0 dev 7 function 1
viaide0: VIA Technologies VT82C686A (Apollo KX133) ATA100 controller
viaide0: bus-master DMA support present
viaide0: primary channel configured to compatibility mode
viaide0: primary channel ignored (disabled)
viaide0: secondary channel configured to compatibility mode
viaide0: secondary channel interrupting at irq 15
atabus1 at viaide0 channel 1
uhci0 at pci0 dev 7 function 2: vendor 0x1106 product 0x3038 (rev. 0x16)
uhci0: interrupting at irq 5
usb0 at uhci0: USB revision 1.0
uhci1 at pci0 dev 7 function 3: vendor 0x1106 product 0x3038 (rev. 0x16)
uhci1: interrupting at irq 5
usb1 at uhci1: USB revision 1.0
pchb1 at pci0 dev 7 function 4
pchb1: vendor 0x1106 product 0x3057 (rev. 0x40)
auvia0 at pci0 dev 7 function 5: VIA Technologies VT82C686A AC'97
Audio (rev 0x50)
auvia0: interrupting at irq 14
auvia0: ac97: SigmaTel STAC9721/23 codec; 18 bit DAC, 18 bit ADC, SigmaTel 3D
auvia0: ac97: ext id 200<AMAP>
audio0 at auvia0: full duplex, independent
satalink0 at pci0 dev 8 function 0
satalink0: Silicon Image SATALink 3512 (rev. 0x01)
satalink0: SATALink BA5 register space disabled
satalink0: bus-master DMA support present
satalink0: primary channel wired to native-PCI mode
satalink0: using irq 11 for native-PCI interrupt
atabus0 at satalink0 channel 0
satalink0: secondary channel wired to native-PCI mode
atabus2 at satalink0 channel 1
rtk0 at pci0 dev 9 function 0: Realtek 8139 10/100BaseTX (rev. 0x10)
rtk0: interrupting at irq 10
rtk0: Ethernet address 00:00:1c:d3:c3:13
rlphy0 at rtk0 phy 7: Realtek internal PHY
rlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
isa0 at pcib0
lpt0 at isa0 port 0x378-0x37b irq 7
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
attimer0 at isa0 port 0x40-0x43: AT Timer
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker (CPU-intensive output)
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff
npx0: reported by CPUID; using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
attimer0: attached to pcppi0
isapnp0: no ISA Plug 'n Play devices found
apm0 at mainbus0: Advanced Power Management BIOS: Power Management spec V1.2
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
satalink0: port 0: device present, speed: 1.5Gb/s
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
atapibus0 at atabus1: 2 targets
cd0 at atapibus0 drive 0: <HL-DT-STDVD-ROM GDR8164B, , 0L06> cdrom removable
uhub0 at usb0: vendor 0x1106 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhub1 at usb1: vendor 0x1106 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
cd1 at atapibus0 drive 1: <TSSTcorp CDDVDW SH-S202N, , SB02> cdrom removable
cd1: 32-bit data port
cd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4 (Ultra/66)
cd0(viaide0:1:0): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA)
cd1(viaide0:1:1): using PIO mode 4, Ultra-DMA mode 4 (Ultra/66) (using DMA)
wd0 at atabus0 drive 0: <ST3500418AS>
wd0: quirks 2<FORCE_LBA48>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd0(satalink0:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
ulpt0 at uhub0 port 1 configuration 1 interface 0
ulpt0: Hewlett-Packard DeskJet 815C, rev 1.00/1.00, addr 2, iclass 7/1
ulpt0: using uni-directional mode
pad0: outputs: 44100Hz, 16-bit, stereo
audio1 at pad0: half duplex
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
r128drm0: interrupting at irq 11

--- End Message ---
--- Begin Message ---

my NetBSD/i386 5.0.1 box reports several

viaide0:1:0: lost interrupt
       type: atapi tc_bcount: 1028 tc_skip: 1024

when I try to play a video DVD and when there is no hard disk
connected to the IDE controller. Is this normal? If not: can this
behavior definitively be attributed to a hardware problem? Or do you
see a chance that there is a bug in one of the associated drivers?

I have checked the following configurations. "Problem" means that the
above lost interrupt messages are reported (or "viaide0:0:0" when the
DVD drive is connected to channel 1), "ok" means: the video DVD
started without problems.

|  C1P  |  C1S  |  C2P  |  C2S  | result
|    disabled   |  DVD  | DVDRW | problem
|  N/C  |  N/C  |  DVD  | DVDRW | problem
|  DVD  | DVDRW |  N/C  |  N/C  | problem
|  DVD  |  N/C  | DVDRW |  N/C  | problem
|  HDD  |  N/C  |  DVD  | DVDRW |   ok

C1P: primary device on channel 1
C1S: secondary device on channel 1
C2P: primary device on channel 2
C2S: secondary device on channel 2
disabled: the channel has been disabled via BIOS setting
N/C: no device connected
DVD: DVD drive which is to be used for video playback
DVDRW: DVD burning device; not used for video playback
HDD: a (bootable) hard disk

Kind regards

--- End Message ---

Home | Main Index | Thread Index | Old Index