Mailing List archive

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

[linux-dvb] Re: Patch: Fix mem leak



On Fri, Nov 15, 2002 at 03:37:26PM +0100, Holger Waechtler wrote:
> Hi Florian,
> 
> thanks for tracking this down. I applied your patches to CVS.

> Florian Schirmer wrote:
> >Hi,
> >
> >as promised the two patches which close the memleaks. I've not spend very 
> >much time to find out how much impact this bug has. It is at least a mem 
> >leak. Maybe it will kill the ioctl callbacks at all if the demux module 
> >has been reloaded. That depends on how the list_for_each traverses the 
> >list.
> >
> >The ioctl patch should be applied. The other depends on the patch i send 
> >earlier today.
> >
> >But be aware. Again untested. I just verified it compiles.

Well, I tested it with an Hauppauge DVB-C Revision 2.1 and the
following happened, although I don't know if that was related to this
patch:

After compilation and "make insmod" I did an successful czap to a
channel, as I found vdr has problems for me to tune to channels when I
don't czap before.  After that I started vdr which was not able to
tune to any channel.  Instead the two [kdvb-fe] processes consumed a
maximum of cpu time.  After waiting some time for vdr to tune to a
channel, the system went slower and slower up to a point, where it was
completely frozen.  No interaction with keyboard and mouse was
possible.  I went to a different system and did a "ssh root@node" to
the system.  I killed vdr.  vdr was cone, but still no local
interaction possible.  I did a "rmmod dvb-ttpci" and local
interactivity came completely back to the system.  Then I did a "make
rmmod" and a "make insmod" and restarted vdr.  This time it worked
(and works up to now).

But then I noticed that there was an oops on the logs.  The time must
have been about the time I did the "rmmod dvb-ttpci" or maybe the time
I did remove the rest of the modules by "make rmmod".  The oops looks
the following way:

---
ksymoops 2.4.5 on i686 2.4.19-4GB.  Options used
     -v /root/vmlinux (specified)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.19-4GB/ (default)
     -m /boot/System.map-2.4.19-4GB (default)

Warning (compare_ksyms_lsmod): module ip_nat_f is in lsmod but not in ksyms, probably no symbols exported
Error (compare_ksyms_lsmod): module ip_nat_ftp is in ksyms but not in lsmod
Error (compare_ksyms_lsmod): module iptable_nat is in ksyms but not in lsmod
Error (compare_ksyms_lsmod): module ip_conntrack_ftp is in ksyms but not in lsmod
Error (compare_ksyms_lsmod): module ip_conntrack is in ksyms but not in lsmod
Error (compare_ksyms_lsmod): module ip_tables is in ksyms but not in lsmod
Error (compare_ksyms_lsmod): module lvm-mod is in ksyms but not in lsmod
Error (compare_ksyms_lsmod): module reiserfs is in ksyms but not in lsmod
Error (compare_ksyms_lsmod): module aic7xxx is in ksyms but not in lsmod
Unable to handle kernel paging request at virtual address d9197090
c0e0006f
*pde = 04053067
Oops: 0000 2.4.19-4GB #1 Mon Oct 14 22:11:39 UTC 2002
CPU:    0
EIP:    0010:[<c0e0006f>]    Tainted: P 
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010246
eax: d9197000   ebx: c9370200   ecx: 00000006   edx: 02000040
esi: c9370200   edi: 00000000   ebp: 00000001   esp: c76f1f00
ds: 0018   es: 0018   ss: 0018
Process kdvb-fe (pid: 26294, stackpage=c76f1000)
Stack: c9370200 c0e00269 c9370200 c9370200 00000002 c0e00dc0 c9370200 c9370238 
       00000006 c9370200 00000001 c0e00ec4 c2c5f9e0 c76f1f5c 00000001 c9370a02 
       00000000 0000001b 00007650 c936d0aa c2c5f9e0 c76f1f5c 00000001 00000009 
Call Trace:    [<c936d0aa>] [<c011b67d>] [<c936d8a7>] [<d29b5856>] [<d29b6213>]
  [<c01072c6>] [<d29b6050>]
Code: 8b 98 90 00 00 00 75 09 89 d8 5b c3 90 8d 74 26 00 53 68 00 


>>EIP; c0e0006f <[dvb-ttpci].text.start+f/30>   <=====

>>eax; d9197000 <END_OF_CODE+331117d/????>
>>ebx; c9370200 <[bttv].bss.end+400861/4646c1>
>>edx; 02000040 Before first symbol
>>esi; c9370200 <[bttv].bss.end+400861/4646c1>
>>esp; c76f1f00 <[usbserial].bss.end+fd6c5/74f825>

Trace; c936d0aa <[bttv].bss.end+3fd70b/4646c1>
Trace; c011b67d <schedule+15d/250>
Trace; c936d8a7 <[bttv].bss.end+3fdf08/4646c1>
Trace; d29b5856 <[lirc_dev].bss.end+1e93a17/24d5221>
Trace; d29b6213 <[lirc_dev].bss.end+1e943d4/24d5221>
Trace; c01072c6 <kernel_thread+26/30>
Trace; d29b6050 <[lirc_dev].bss.end+1e94211/24d5221>

Code;  c0e0006f <[dvb-ttpci].text.start+f/30>
00000000 <_EIP>:
Code;  c0e0006f <[dvb-ttpci].text.start+f/30>   <=====
   0:   8b 98 90 00 00 00         mov    0x90(%eax),%ebx   <=====
Code;  c0e00075 <[dvb-ttpci].text.start+15/30>
   6:   75 09                     jne    11 <_EIP+0x11> c0e00080 <[dvb-ttpci].text.start+20/30>
Code;  c0e00077 <[dvb-ttpci].text.start+17/30>
   8:   89 d8                     mov    %ebx,%eax
Code;  c0e00079 <[dvb-ttpci].text.start+19/30>
   a:   5b                        pop    %ebx
Code;  c0e0007a <[dvb-ttpci].text.start+1a/30>
   b:   c3                        ret    
Code;  c0e0007b <[dvb-ttpci].text.start+1b/30>
   c:   90                        nop    
Code;  c0e0007c <[dvb-ttpci].text.start+1c/30>
   d:   8d 74 26 00               lea    0x0(%esi,1),%esi
Code;  c0e00080 <[dvb-ttpci].text.start+20/30>
  11:   53                        push   %ebx
Code;  c0e00081 <[dvb-ttpci].text.start+21/30>
  12:   68 00 00 00 00            push   $0x0


1 warning and 8 errors issued.  Results may not be reliable.
---

Robert

-- 
Robert Schiele			Tel.: +49-621-181-2517
Dipl.-Wirtsch.informatiker	mailto:rschiele@uni-mannheim.de

Attachment: pgp00020.pgp
Description: PGP signature


Home | Main Index | Thread Index