sbp_targ memory leak

Hidetoshi Shimokawa simokawa at FreeBSD.ORG
Wed Jan 16 14:46:48 PST 2008


Thanks for digging out the problem.
I did not suppose multiple CTIO's for an ATIO so that your guess
should be right.

I'm sorry that I will be busy until mid of Feb.
I'd like to merge your fixes to -current in a few month.

I appreciate if you would do the following:
- test on -current and make a patch for -current.
- split the patch for each fix
  (a version control system or ports/devel/quilt may be useful)
- non-reversed patch

Thanks,

On Jan 17, 2008 1:05 AM, Sean Bruno <sbruno at miralink.com> wrote:
>
> Hidetoshi Shimokawa wrote:
> > Thanks for the test.
> > I'll look into the page_table problem this weekend.
> > Sorry for late response.
> >
> > On 12/21/07, Sean Bruno <sbruno at miralink.com> wrote:
> >
> >> 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
> >>
> >>
> >>
> >
> >
> >
> I seem to have been able to resolve the memory leak, multiple CTIO's and
> some various lockups with the patch in this PR -->
> http://www.freebsd.org/cgi/query-pr.cgi?pr=119575
>
> This is against RELENG_6 and should be applied.  I noted 3 more issues
> that I'd like to resolve in the ticket.
>
> What do you think?
>
> Sean
>



-- 
/\ Hidetoshi Shimokawa
\/  simokawa at FreeBSD.ORG


More information about the freebsd-firewire mailing list