[linux-dvb] kernel memleak with DVB drivers

Stefan Seyfried seife at gmane0305.slipkontur.de
Sun Jun 19 19:56:29 CEST 2005


On Sat, Jun 18, 2005 at 11:50:39PM +0200, Stefan Seyfried wrote:

> start the epg scanner, basically:
> --------------------------------------------------
> #!/bin/bash
> for i in arte ZDF N24 BR-alpha Eurosport VOX; do
> 	tzap -r $i > /dev/null 2>&1 &
> 	pid=$!
> 	tv_grab_dvb > /dev/null
> 	kill $pid
> 	sleep 1
> done

i just tried to reproduce it this way and wasn't able to reproduce; It seems
to happen only when using dvbd to tune in.
This one reproduces it easily:
--------------------------------
#!/bin/bash
TYPE=dvb-s

for CHAN in 'Das Erste' ZDF 'RTL Television' EinsPlus SAT.1 'WDR Essen'; do
        echo "$CHAN"
        dvbcat -o /dev/null -d 5 $TYPE "$CHAN" &
        PID=$!
        tv_grab_dvb > /dev/null
        kill $PID; sleep 2
done
--------------------------------

you need dvbd from dvbd.sourceforge.net set up (you probably also need to
apply my patch from the patches area if you have a diseqc-switch).

Before running the above:
tv at heppo:~> free
             total       used       free     shared    buffers     cached
Mem:        256296     249728       6568          0      25100      77440
-/+ buffers/cache:     147188     109108
Swap:       512024          0     512024

after running it:
tv at heppo:~> free
             total       used       free     shared    buffers     cached
Mem:        256296     240180      16116          0      25192      58356
-/+ buffers/cache:     156632      99664
Swap:       512024          0     512024

there is not much else running on the machine besides sshd, screen and some
shells.

So it definitely is something in the way dvbd tunes in (but it is not dvbd,
killing it frees ~500kb) that does not happen when using szap to tune.
I would have bet i have seen it with tzap on the cinergyT2, but i can only
verify this tomorrow when i am back in dvb-t-land.

After the above, i killed everything on this machine:
heppo:~ # ps xa
  PID TTY      STAT   TIME COMMAND
    1 ?        S      0:01 init [3] 
    2 ?        SN     0:00 [ksoftirqd/0]
    3 ?        S<     0:00 [events/0]
    4 ?        S<     0:00 [khelper]
    9 ?        S<     0:00 [kthread]
   19 ?        S<     0:00 [kacpid]
   90 ?        S<     0:00 [kblockd/0]
  130 ?        S      0:00 [pdflush]
  131 ?        S      0:00 [pdflush]
  133 ?        S<     0:00 [aio/0]
  132 ?        S      0:00 [kswapd0]
  726 ?        S      0:00 [kseriod]
  960 ?        S      0:00 [khubd]
 1159 ?        S      0:01 [kjournald]
 3716 ?        S<     0:00 [hwscand]
 5465 ?        S      0:00 [saa7134[0]]
 5654 ?        S<     0:00 [reiserfs/0]
 6653 ?        Ss     0:00 sshd: tv [priv]                                    
 6655 ?        R      0:30 sshd: tv at pts/0                                     
 6656 pts/0    Ss     0:00 -bash
11697 pts/0    S      0:00 su -
11698 pts/0    R      0:00 -bash
11729 pts/0    R+     0:00 ps xa
heppo:~ # free
             total       used       free     shared    buffers     cached
Mem:        256296     226016      30280          0      28868      87424
-/+ buffers/cache:     109724     146572
Swap:       512024          0     512024

these >100MB are not consumed by init, sshd and 2 shells. slabtop shows a
normal amount of slab usage (~12MB). This is a kernel leak.
-- 
Stefan Seyfried





More information about the linux-dvb mailing list