Caglar,

I need some more clarification before I can answer the questions that you have 
asked.

1) Does your application ensure that all the DSPLink shut down API's like 
MSGQ_close, POOL_close, etc are being called in the various components when you 
stop your application?

2) Are you seeing memory leaks in your application despite calling all the 
DSPLink shut down API's in all the components?

3) Or is it the issue that since you have so many components in your system, 
you cannot keep track of all resources that have been allocated in your system. 
Since you cannot free the resources in a conventional way by calling MSGQ_close 
etc you are looking for other alternatives?

Thanks and Regards,
Deepali Uppal
DSP/BIOS Link 
Platform Support Products 


-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of 
Caglar Akyuz
Sent: Wednesday, September 23, 2009 6:05 PM
To: davinci-linux-open-sou...@linux.
Subject: Dsplink Memory Leak Problem

Hi,

I'm using dsplink 1.60 with latest git kernel. I noticed that dsplink leaks 
some kernel memory during starting/stopping of a dsp application. I know 
this is expected per [1] but this condition is hard to satisfy. Consider an 
application 
consisting of dsplink + codec engine + dmai + gstreamer + some gui library. 
I tried to satsify this condition on my application and fixed all the known 
issues 
related to gstreamer-ti libraries. However, when I continuesly start/stop my 
application dsplink leaks _kernel_ memory so I'm forced to restart kernel at 
some 
point. This issue was also reported at [2].

So I tried to track source of memory leak in dsplink. I modify MEM_Alloc and 
MEM_free 
functions in mem.c. I keep a log of unfreed allocations in dsplink. I export 
these 
information to userspace via sysfs interface. My userspace application monitors 
sysfs file and notifies dsplink when all the users are closed and dsplink 
kernel 
module frees those un-allocated allocations.

I have 2 questions:

1) Is there any way to know in dsplink kernel module that all dsp users are 
shut down 
so that kernel module can free unfreed allocations without userspace 
intervention?

2) What are the potential drawbacks of this solution. For instance, at module 
load time
dsplink performs 3 permanent allocations(*) so I keep track of these 
allocations and do not 
free those areas. Is there any possibility of more permament allocations during 
run time?

Thanks,
Caglar

(*) By permanent allocations I mean memory needed during whole dsplink module 
life time.

[1] 
http://wiki.msp430.com/index.php/DSPLink_FAQs#Are_there_any_restrictions_on_when_an_open_message_queue_can_be_closed.3F
[2] 
http://www.mail-archive.com/[email protected]/msg09949.html

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to