I have a strange issue here. My linux system is a OpenSuse 11.3 with a 2.6.34.10-0.2-xen kernel. It has 2 TBS 6981 cards installed and the latest TBS linux driver 110818 compiles and is loaded without any problem. The vdr 1.7.20 starts also without any issue,
- Code: Select All Code
dmesg | grep cx23885 shows
cx23885 driver version 0.0.2 loaded
cx23885 0000:00:00.0: enabling device (0000 -> 0002)
CORE cx23885[0]: subsystem: 6981:8888, board: TurboSight TBS 6981 [card=30,autodetected]
cx25840 2-0044: cx23885 A/V decoder found @ 0x88 (cx23885[0])
cx25840 2-0044: firmware: requesting v4l-cx23885-avcore-01.fw
cx25840 2-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382 bytes)
cx23885_dvb_register() allocating 1 frontend(s)
cx23885[0]: cx23885 based dvb card
DVB: registering new adapter (cx23885[0])
cx23885_dvb_register() allocating 1 frontend(s)
cx23885[0]: cx23885 based dvb card
DVB: registering new adapter (cx23885[0])
cx23885_dev_checkrevision() Hardware revision = 0xa5
cx23885[0]/0: found at 0000:00:00.0, rev: 4, irq: 16, latency: 0, mmio: 0xfcc00000
cx23885 0000:00:00.0: setting latency timer to 64
IRQ 16/cx23885[0]: IRQF_DISABLED is not guaranteed on shared IRQs
input: cx23885 IR (TurboSight TBS 6981) as /devices/xen/pci-0/pci0000:00/0000:00:00.0/rc/rc0/input0
rc0: cx23885 IR (TurboSight TBS 6981) as /devices/xen/pci-0/pci0000:00/0000:00:00.0/rc/rc0
cx23885 0000:00:01.0: enabling device (0000 -> 0002)
CORE cx23885[1]: subsystem: 6981:8888, board: TurboSight TBS 6981 [card=30,autodetected]
cx25840 5-0044: cx23885 A/V decoder found @ 0x88 (cx23885[1])
cx25840 5-0044: firmware: requesting v4l-cx23885-avcore-01.fw
cx25840 5-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382 bytes)
cx23885_dvb_register() allocating 1 frontend(s)
cx23885[1]: cx23885 based dvb card
DVB: registering new adapter (cx23885[1])
cx23885_dvb_register() allocating 1 frontend(s)
cx23885[1]: cx23885 based dvb card
DVB: registering new adapter (cx23885[1])
cx23885_dev_checkrevision() Hardware revision = 0xa5
cx23885[1]/0: found at 0000:00:01.0, rev: 4, irq: 17, latency: 0, mmio: 0xfca00000
cx23885 0000:00:01.0: setting latency timer to 64
IRQ 17/cx23885[1]: IRQF_DISABLED is not guaranteed on shared IRQs
input: cx23885 IR (TurboSight TBS 6981) as /devices/xen/pci-0/pci0000:00/0000:00:01.0/rc/rc1/input1
rc1: cx23885 IR (TurboSight TBS 6981) as /devices/xen/pci-0/pci0000:00/0000:00:01.0/rc/rc1
/var/log/messages
- Code: Select All Code
{--cut --}
vdr: [1677] frontend 0/0 provides DVB-S2 with QPSK ("TurboSight TBS 6981 DVBS/S2 frontend")
vdr: [1677] LNB-sharing: patch version 0.1.4
vdr: [1677] LNB-sharing: setting device 1 to use LNB 1
vdr: [1677] Device 1: will send signals (like 22kHz) to LNB nr. = 1
vdr: [1677] frontend 1/0 provides DVB-S2 with QPSK ("TurboSight TBS 6981 DVBS/S2 frontend")
vdr: [1677] LNB-sharing: patch version 0.1.4
vdr: [1677] LNB-sharing: setting device 2 to use LNB 2
vdr: [1677] Device 2: will send signals (like 22kHz) to LNB nr. = 2
vdr: [1677] frontend 2/0 provides DVB-S2 with QPSK ("TurboSight TBS 6981 DVBS/S2 frontend")
vdr: [1677] LNB-sharing: patch version 0.1.4
vdr: [1677] LNB-sharing: setting device 3 to use LNB 3
vdr: [1677] Device 3: will send signals (like 22kHz) to LNB nr. = 3
vdr: [1677] frontend 3/0 provides DVB-S2 with QPSK ("TurboSight TBS 6981 DVBS/S2 frontend")
vdr: [1677] LNB-sharing: patch version 0.1.4
vdr: [1677] LNB-sharing: setting device 4 to use LNB 4
vdr: [1677] Device 4: will send signals (like 22kHz) to LNB nr. = 4
vdr: [1677] found 4 DVB devices
vdr: [1677] initializing plugin: dummydevice (1.0.2): Output device that does nothing
vdr: [1677] initializing plugin: epgsearch (1.0.0): search the EPG for repeats and more
vdr: [1677] initializing plugin: streamdev-server (0.5.1-git): VDR Streaming Server
vdr: [1677] initializing plugin: svdrpservice (0.0.4): SVDRP client
[-- cut-]
BUT after 2 hours the complete memory is used and oom-killer starts crashing the system.
The messages log shows the following once the oom-killer kicks in.
[--cut--)
- Code: Select All Code
vdr: [1451] frontend 3/0 timed out while tuning to channel 15, tp 111836
kernel: [ 8108.333214] cx23885[1] dvb invoked oom-killer: gfp_mask=0xd0, order=0, oom_adj=0, oom_scor
kernel: [ 8108.333227] cx23885[1] dvb cpuset=/ mems_allowed=0
kernel: [ 8108.333237] Pid: 2690, comm: cx23885[1] dvb Tainted: P 2.6.35.6-0.7-xen #1
kernel: [ 8108.333243] Call Trace:
kernel: [ 8108.333268] [<c00098f3>] try_stack_unwind+0x173/0x190
kernel: [ 8108.333284] [<c0007b3f>] dump_trace+0x3f/0xe0
kernel: [ 8108.333297] [<c000995b>] show_trace_log_lvl+0x4b/0x60
kernel: [ 8108.333307] [<c0009988>] show_trace+0x18/0x20
kernel: [ 8108.333319] [<c040b13c>] dump_stack+0x6d/0x72
kernel: [ 8108.333334] [<c00bcafb>] dump_header+0x9b/0x1d0
kernel: [ 8108.333344] [<c00bd020>] oom_kill_process+0x90/0x1b0
kernel: [ 8108.333389] [<c00bd516>] out_of_memory+0xc6/0x1f0
kernel: [ 8108.333400] [<c00c0671>] __alloc_pages_nodemask+0x5f1/0x610
kernel: [ 8108.333418] [<c00e7f07>] __vmalloc_area_node+0xc7/0x170
kernel: [ 8108.333430] [<c00e8111>] vmalloc_32+0x31/0x40
kernel: [ 8108.333445] [<edbb96bc>] videobuf_dma_init_kernel+0x2c/0xc0 [videobuf_dma_sg]
kernel: [ 8108.333463] [<edbba0e3>] __videobuf_iolock+0x123/0x150 [videobuf_dma_sg]
kernel: [ 8108.333485] [<edac0331>] videobuf_iolock+0x31/0x80 [videobuf_core]
kernel: [ 8108.333506] [<edce0d5f>] cx23885_buf_prepare+0x8f/0x170 [cx23885]
kernel: [ 8108.333546] [<edce29f6>] dvb_buf_prepare+0x16/0x20 [cx23885]
kernel: [ 8108.333583] [<edac17dc>] __videobuf_read_start+0xbc/0x130 [videobuf_core]
kernel: [ 8108.333599] [<edac1ca8>] videobuf_read_start+0x18/0x30 [videobuf_core]
kernel: [ 8108.333615] [<edb8c751>] videobuf_dvb_thread+0x31/0x194 [videobuf_dvb]
kernel: [ 8108.333627] [<c0059084>] kthread+0x74/0x80
kernel: [ 8108.333638] [<c0006502>] kernel_thread_helper+0x6/0x10
[--cut---]
I checked using free and ps the processes and it seems that 3 cx23885 dvb processes are terminate and starting in short intervals and with each interval the used memory increases.
ps -A output is like
- Code: Select All Code
{--cut --]
1677 ? 00:01:11 vdr
1680 ? 00:00:01 kdvb-ad-0-fe-0
1683 ? 00:00:01 kdvb-ad-1-fe-0
1686 ? 00:00:01 kdvb-ad-2-fe-0
1689 ? 00:00:01 kdvb-ad-3-fe-0
1695 ? 00:00:28 cx23885[0] dvb
1839 ? 00:00:00 flush-202:16
2021 ? 00:00:00 cx23885[1] dvb
2046 ? 00:00:00 cx23885[0] dvb
2047 ? 00:00:00 cx23885[1] dvb
{--cut --]
and after about 2 minutes you get
{--cut --]
1677 ? 00:01:11 vdr
1680 ? 00:00:01 kdvb-ad-0-fe-0
1683 ? 00:00:01 kdvb-ad-1-fe-0
1686 ? 00:00:01 kdvb-ad-2-fe-0
1689 ? 00:00:01 kdvb-ad-3-fe-0
1695 ? 00:00:30 cx23885[0] dvb
1839 ? 00:00:00 flush-202:16
2100 ? 00:00:00 cx23885[1] dvb
2102 ? 00:00:00 cx23885[1] dvb
2103 ? 00:00:00 cx23885[0] dvb
{--cut --]
The same issue applies if there is just one card installed or running on a fresh OpenSuse 11.4 with 2.6.37.6-0.7 kernel.
Any idea how to solve this issue?