Hi gurus
I try to make a linux recorder which record continuesly DVB signal. My
problem is that after 2-4 days it frees because size of VMALLOC is too small
?
Here is my situation after DVB freeze out:
[root@refrecord DVB]# /DVBVIDEOT/DVB/dvbtune-0.5/dvbtune -f 658000000 -i
FD 4: fd_dvr DEMUX DEVICE: : Cannot allocate memory
[root@refrecord DVB]# uname -a
Linux refrecord 2.6.16-1.2107_FC4 #1 Tue May 2 19:15:13 EDT 2006 i686 i686
i386 GNU/Linux
[root@refrecord DVB]# lsmod
Module Size Used by
ipv6 249217 20
parport_pc 27181 0
lp 12929 0
parport 35977 2 parport_pc,lp
autofs4 19397 1
sunrpc 145893 1
dm_mod 53973 0
video 15173 0
button 6609 0
battery 9413 0
ac 4933 0
cx8800 32589 0
compat_ioctl32 1473 1 cx8800
v4l1_compat 13637 1 cx8800
v4l2_common 7873 1 cx8800
cx88_dvb 13405 0
cx8802 12229 1 cx88_dvb
cx88xx 63589 3 cx8800,cx88_dvb,cx8802
ir_common 9797 1 cx88xx
btcx_risc 5065 3 cx8800,cx8802,cx88xx
tveeprom 14801 1 cx88xx
videodev 9409 2 cx8800,cx88xx
cx88_vp3054_i2c 4417 1 cx88_dvb
i2c_algo_bit 9161 2 cx88xx,cx88_vp3054_i2c
mt352 6469 1 cx88_dvb
or51132 9925 1 cx88_dvb
video_buf_dvb 6853 1 cx88_dvb
dvb_core 80513 1 video_buf_dvb
video_buf 22212 5 cx8800,cx88_dvb,cx8802,cx88xx,video_buf_dvb
nxt200x 13637 1 cx88_dvb
cx24123 8389 1 cx88_dvb
lgdt330x 7773 1 cx88_dvb
cx22702 6341 1 cx88_dvb
i2c_core 21697 10
cx88_dvb,cx88xx,tveeprom,i2c_algo_bit,mt352,or51132,nxt200x,cx24123,lgdt330x,cx22702
dvb_pll 11589 4 cx88_dvb,or51132,nxt200x,cx22702
e752x_edac 10817 0
edac_mc 14728 1 e752x_edac
hw_random 5977 0
tg3 98501 0
floppy 63869 0
ext3 128329 3
jbd 56789 1 ext3
cciss 56673 5
sd_mod 18113 0
scsi_mod 131661 2 cciss,sd_mod
[root@refrecord DVB]# dmesg
first active
cx88[0]/2: cx8802_start_dma w: 0, h: 0, f: 2
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [f5831e80/21] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma w: 0, h: 0, f: 2
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [f5831e80/21] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma w: 0, h: 0, f: 2
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [f5831e80/21] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
-->
and so on until it crash:
<--
cx88[0]/2: cx8802_start_dma w: 0, h: 0, f: 2
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [f58326c0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase
size.
[root@refrecord DVB]# cat /proc/meminfo
MemTotal: 2076108 kB
MemFree: 224692 kB
Buffers: 67192 kB
Cached: 1598396 kB
SwapCached: 0 kB
Active: 874892 kB
Inactive: 813112 kB
HighTotal: 1179596 kB
HighFree: 119432 kB
LowTotal: 896512 kB
LowFree: 105260 kB
SwapTotal: 3068404 kB
SwapFree: 3068320 kB
Dirty: 8 kB
Writeback: 0 kB
Mapped: 36864 kB
Slab: 56764 kB
CommitLimit: 4106456 kB
Committed_AS: 122128 kB
PageTables: 1596 kB
VmallocTotal: 114680 kB <---- Maybe this is
the problem
VmallocUsed: 113484 kB <----
VmallocChunk: 692 kB
HugePages_Total: 0
HugePages_Free: 0
Hugepagesize: 4096 kB
[root@refrecord tmp]# free
total used free shared buffers cached
Mem: 2076108 1851416 224692 0 67196 1598408
-/+ buffers/cache: 185812 1890296
Swap: 3068404 84 3068320
Ok. So it seems that VMALLOC is the problem. Is there a way to fix this ? I
need to get this so stable that it works without rebooting the server onace
a night. Any suggestion ?
Any help would be highly appreciate
-Jussi
_______________________________________________
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb