On Tue, 26 Aug 2003, [iso-8859-1] Mĺns Rullgĺrd wrote:
> Jaroslav Kysela <[EMAIL PROTECTED]> writes:
>
> >> Is there a memory leak in alsa-lib? When playing music with a player
> >> I'm writing (TCVP, http://tcvp.sf.net), the memory usage reported by
> >> top grows for each file I play, but only if I use ALSA for sound
> >> playback. If I use OSS the memory usage varies around 1.5 MB, but if
> >> I use ALSA, it starts at 1.9 MB (OK, libasound takes some space) and
> >> grows by 30-40 kB for each played file. Running the whole thing under
> >> valgrind gives me this, which is all alsa-related. When using OSS,
> >> valgrind reports no leaks.
> >
> > I tested aplay with valgrind and I cannot find any leak (except a few
> > allocations probably from glibc). Note that you have to use
> > snd_config_update_free_global() after end of the session to free
>
> OK, so what constitutes a session? A snd_pcm_open/snd_pcm_close pair?
> Won't snd_pcm_open reuse the data from a previous call?
>
> I added that call after my call to snd_pcm_open, and valgrind no
> longer reports any leaks, except for a few kilobytes from a flex
> scanner (not related to alsa). Still, the memory used by the player
> when running increases with each file. The virtual size of the player
> is rather constant at around 25 MB all the time, while the resident
> size is slowly increasing, until it too reaches 25 MB. Then the
> impossible happens:
>
> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
> 7148 mru 11 0 25160 27m 2740 S 0.0 12.4 0:00.08 tcvp
>
> Now the man page for top tells me that "VIRT = SWAP + RES", so unless
> a negative amount has been swapped (what would that mean?), something
> strange is going on. The odd thing is that this happens only when I
> use the ALSA output module. Could it be that alsa-lib triggers some
> bug somewhere in top, or in the kernel? This seems a little unlikely,
> though.
I will try to investigate this problem.
> In case it matters, I use ALSA OSS emulation when testing OSS sound.
>
> > the configuration cache in alsa-lib. This is described in
> > the alsa-lib/MEMORY-LEAK file.
>
> That file isn't present in the alsa-lib 0.9.6 tarball. It should be
> added the EXTRA_DIST list in Makefile.am.
Thanks for info. Fixed.
> I ran valgrind on aplay, and it tells me more or less the same as for
> my program. Does aplay not call the above function? Not that it
> needs to, really.
I've added the free function to aplay before tests, of course.
Jaroslav
-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs
-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel