sbp_targ memory leak

Sean Bruno sbruno at miralink.com
Thu Dec 20 17:16:37 PST 2007


Hidetoshi Shimokawa wrote:
> I think you are right and page table is not freed when CAM_SEND_STATUS
> is not set.
> Maybe we should always free page tables if refcont == 0 rather than
> free in sbp_targ_send_status().
>
> You patch is not just adding debug printfs, right?
> What is the mtx locks for?
>
> On 12/18/07, Sean Bruno <sbruno at miralink.com> wrote:
>   
>> Hidetoshi Shimokawa wrote:
>>     
>>> Thanks for the tracking of the problem.
>>> Could you resend the patch in unified or context diff?
>>>
>>> Thanks,
>>>
>>> On 12/17/07, Sean Bruno <sbruno at miralink.com> wrote:
>>>
>>>       
>>>> In trying to understand and make sbp_targ functional, I've noted that
>>>> the code seems to lose track of how many page tables it allocates for
>>>> any give orbi.  I had to add a lot of debugging code around the
>>>> malloc/free's to find out what was going on, and I'm not sure what the
>>>> code is supposed to do in this case.
>>>>
>>>> Please review the patch diff at --> http://consultcsg.com/RELENG_6.diff
>>>>
>>>> And the log at -->http://consultcsg.com/malloc_failure.txt
>>>>
>>>>
>>>>
>>>>         
>> Diff updated at http://consultcsg.com/RELENG_6.diff
>>
>> Sean
>>
>>     
I moved the free around as you suggested and the memory leak does indeed 
go away and there are no further crashes.
Here is my current diff -->  http://consultcsg.com/RELENG_6.diff . 

It does look like the data is not being written or read to the backend 
correctly however.  I.e. the page_table is not being
setup correctly when more than one read or write is required to service 
an ORB.  Any ideas on how to look into that?

Sean


More information about the freebsd-firewire mailing list