Hey, all...
I've been trying to track down a periodic hang in a PVR-350 box,
and I wanted to bounce a few thoughts off the group. I suspect
the motherboard is the culprit, but I want to get a second
opinion before I go to the trouble of replacing it.
My system's vitals:
PVR-350
P4 2.4 GHz
ABIT SG-72 motherboard (SiS chipset)
Linux 2.4.27
Current ivtv version: 0.2.0-rc3a
(Complete boot-up logs cut & paste below.)
The problem is that periodically, during capture, the encoder
freezes up. Specifically, data stops arriving on /dev/video0.
This happens about once per 4 hours of recording.
There seem to be two primary failure modes. In one mode, the
process reading /dev/video0 is killable, and doing ivtvctl -H
(to reload the firmware) after killing it brings everything
back to life. In the other failure mode, the process reading
/dev/video0 is unkillable, ivtvctl -H hangs, and the only
solution is a reboot.
Regardless of the failure mode, I don't see anything in the logs
at the time of the failure, so I have no hints as to what is failing.
After a "hard" failure, attempting to kill the process reading from
the device produces messages like the following in syslog:
Dec 27 14:20:09 mythos kernel: ivtv: ENC: User stopped capture.
Dec 27 14:20:19 mythos kernel: ivtv: 1000 ms time out waiting for firmware
Dec 27 14:20:19 mythos kernel: ivtv: Failed api call 0x00000082 with result
0xfffffff0
Dec 27 14:20:19 mythos kernel: ivtv: ENC: Failed stopping capture -16
Dec 27 14:20:29 mythos kernel: ivtv: 1000 ms time out waiting for firmware
Dec 27 14:20:29 mythos kernel: ivtv: Failed api call 0x000000d5 with result
0xfffffff0
Dec 27 14:20:29 mythos kernel: ivtv: ENC: Failed stopping event notification -16
Dec 27 14:20:39 mythos kernel: ivtv: 1000 ms time out waiting for firmware
Dec 27 14:20:39 mythos kernel: ivtv: Failed api call 0x000000c6 with result
0xfffffff0
It's worth noting that I'm getting _lots_ of errors reported in
/proc/interrupts (even when the system is working "normally").
The errors seem to be accumulating at a rate of about 5 per second
of uptime.
# cat /proc/interrupts
CPU0
0: 6650229 XT-PIC timer
1: 7 XT-PIC keyboard
2: 0 XT-PIC cascade
4: 120 XT-PIC serial
5: 24297137 XT-PIC ivtv0
10: 2245133 XT-PIC ndiswrapper
11: 42 XT-PIC SiS 7012, eth0
14: 148227 XT-PIC ide0
15: 4 XT-PIC ide1
NMI: 0
LOC: 0
ERR: 282860
MIS: 0
#
Are IRQ errors like this normal?
Is it possible they're linked to the periodic firmware hangs?
Has anyone else seen symptoms similar to mine?
Has anyone else had problems with an ABIT motherboard or SiS chipset
that were resolved by changing motherboards?
I'd also like to know what's happening at the moment the firmware
is dying. It bothers me that the logs show nothing at all at the
moment of failure. Can anyone recommend debugging options and/or
ways of instrumenting the driver that might shed some light on the
problem?
Other information:
1. When I first installed the PVR-350 in this machine, I got the
following console message repeatedly during capture:
APIC error on CPU0: 40(40)
I had to disable APIC in the motherboard's BIOS to get rid of the message.
Currently, I have APIC options turned off in the kernel as well,
though this doesn't seem to make a difference.
2. It could be my imagination, but it seems like crashes are more
common when the machine is doing other high I/O operations (such
as lots of disk access) at the same time.
Thanks...
-Steve
-------
ivtv: ==================== START INIT IVTV ====================
ivtv: version 0.2.0 (rc3a) loading
ivtv: Linux version: 2.4.27
ivtv: In case of problems please include the debug info
ivtv: between the START INIT IVTV and END INIT IVTV lines when
ivtv: mailing the ivtv-devel mailinglist.
ivtv: Autodetected WinTV PVR 350 card
ivtv: Found an iTVC15 based chip
PCI: Found IRQ 5 for device 00:0b.0
ivtv: Unreasonably low latency timer, setting to 64 (was 32)
ivtv: XXX PCI device: 0x0661 vendor: 0x1039
i2c-dev.o: Registered 'ivtv i2c driver #0' as minor 0
lirc_i2c: chip found @ 0x18 (Hauppauge IR)
ivtv: i2c attach [client=Hauppauge IR,ok]
i2c-core.o: client [Hauppauge IR] registered to adapter [ivtv i2c driver
#0](pos. 0).
lirc_dev: lirc_register_plugin:sample_rate: 10
tuner: chip found @ 0xc2
tuner(bttv): type forced to 42 (LG NTSC (newer TAPE series)) [insmod]
ivtv: i2c attach [client=LG NTSC (newer TAPE series),ok]
i2c-core.o: client [LG NTSC (newer TAPE series)] registered to adapter [ivtv
i2c driver #0](pos. 1).
saa7115: starting probe for adapter ivtv i2c driver #0 (0x10005)
saa7115: detecting saa7115 client on address 0x42
saa7115: writing init values
ivtv: i2c attach [client=saa7115[0],ok]
i2c-core.o: client [saa7115[0]] registered to adapter [ivtv i2c driver #0](pos.
2).
saa7115: status: (1E) 0x01, (1F) 0xc0
msp34xx: ivtv version
msp34xx: init: chip=MSP3448W-A2, has NICAM support, simple (D) mode, simpler
(G) no-thread mode
msp34xx: $Id$ compiled on: Dec 12 2004 11:37:41
ivtv: i2c attach [client=MSP3448W-A2,ok]
i2c-core.o: client [MSP3448W-A2] registered to adapter [ivtv i2c driver
#0](pos. 3).
saa7127: Selecting NTSC video Standard
saa7127: Selecting S-Video+Composite
saa7127: Turn WSS off
saa7127: Widescreen Mode 4:3 Full Format
saa7127: Selecting Normal Encoder Input
saa7127: Enable Video Output
ivtv: i2c attach [client=saa7127[0],ok]
i2c-core.o: client [saa7127[0]] registered to adapter [ivtv i2c driver #0](pos.
4).
i2c-core.o: adapter ivtv i2c driver #0 registered as adapter 0.
i2c-core.o: driver tveeprom registered.
tveeprom: Hauppauge: model = 48132, rev = K168, serial# = 7378571
tveeprom: tuner = LG TAPE H001F MK3 (idx = 68, type = 47)
tveeprom: tuner fmt = NTSC(M) (eeprom = 0x08, v4l2 = 0x00001000)
tveeprom: audio_processor = MSP3440 (type = 11)
ivtv: i2c attach [client=tveeprom[0],ok]
i2c-core.o: client [tveeprom[0]] registered to adapter [ivtv i2c driver
#0](pos. 5).
ivtv: Tuner Type 47, Tuner formats 0x00001000, Radio: yes, Model 0x00ad1598,
Revision 0x00000001
ivtv: NTSC tuner detected
ivtv: Radio detected
ivtv: Encoder revision: 0x02040024
ivtv: Encoder Firmware is buggy, use version 0x02040011
ivtv: Decoder revision: 0x02020023
ivtv: Configuring WinTV PVR 350 card with 9 streams
ivtv: Create DMA stream 0 using 256 16384 byte buffers 4194304 kbytes total
ivtv: Registered v4l2 device, streamtype 0 minor 0
ivtv: Create DMA stream 1
ivtv: Registered v4l2 device, streamtype 1 minor 32
ivtv: Create stream 2 using 40 52224 byte buffers 2097152 kbytes total
ivtv: Registered v4l2 device, streamtype 2 minor 224
ivtv: Create DMA stream 3 using 455 4608 byte buffers 2097152 kbytes total
ivtv: Registered v4l2 device, streamtype 3 minor 24
ivtv: Create stream 4
ivtv: Registered v4l2 device, streamtype 4 minor 64
ivtv: Create DMA stream 5 using 16 65536 byte buffers 1048576 kbytes total
ivtv: Registered v4l2 device, streamtype 5 minor 16
ivtv: Create stream 6 using 1024 2048 byte buffers 262144 kbytes total
ivtv: Registered v4l2 device, streamtype 6 minor 228
ivtv: Create stream 7
ivtv: Registered v4l2 device, streamtype 7 minor 232
ivtv: Create DMA stream 8
ivtv: Registered v4l2 device, streamtype 8 minor 48
ivtv: ivtv_enc_thread: pid = 336, itv = 0xce90c740
ivtv: Setting Tuner 47
tuner: type already set (42)
ivtv: Setting audio matrix to input 3, output 1
ivtv: Switching standard to NTSC.
spurious 8259A interrupt: IRQ7.
ivtv: ivtv_dec_thread: pid = 337, itv = 0xce90c740
saa7115: decoder set norm NTSC
saa7115: set audio: 0x01
saa7127: Setting Encoder Video Standard
saa7127: Set NTSC Video Mode
saa7127: Selecting NTSC video Standard
ivtv: Initialized WinTV PVR 350, card #0
ivtv: ==================== END INIT IVTV ====================
# lspci
00:00.0 Host bridge: Silicon Integrated Systems [SiS]: Unknown device 0661 (rev
11)
00:01.0 PCI bridge: Silicon Integrated Systems [SiS]: Unknown device 0003
00:02.0 ISA bridge: Silicon Integrated Systems [SiS]: Unknown device 0964 (rev
36)
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev 01)
00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] SiS7012
PCI Audio Accelerator (rev a0)
00:09.0 Network controller: BROADCOM Corporation: Unknown device 4320 (rev 03)
00:0b.0 Multimedia video controller: Internext Compression Inc: Unknown device
0803 (rev 01)
00:0e.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139 (rev 10)
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS]: Unknown
device 6330
#
-------
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
ivtv-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ivtv-devel