Re: [PATCH 06/14] perf tools: Cache dso data file descriptor

From: Jiri Olsa
Date: Thu May 29 2014 - 05:01:54 EST


On Thu, May 29, 2014 at 09:02:36AM +0900, Namhyung Kim wrote:
> On Tue, 27 May 2014 09:37:38 +0200, Jiri Olsa wrote:
> > On Tue, May 27, 2014 at 10:05:28AM +0900, Namhyung Kim wrote:
> >> Hi Jiri,
> >>
> >> On Thu, 15 May 2014 19:23:27 +0200, Jiri Olsa wrote:
> >>
> >> [SNIP]
> >> > +static void data_close(void)
> >> > +{
> >> > + bool cache_fd = may_cache_fd();
> >> > +
> >> > + if (!cache_fd)
> >> > + close_first_dso();
> >> > +}
> >>
> >> Why do you do this at close()? As long as there's no attempt to open a
> >> new file, we can keep existing fd, no?
> >
> > so the way it works now is:
> >
> > - we keep up to the 'RLIMIT_NOFILE / 2' of open dso objects
> > - if we try to open dso and it fails, because we are out of
> > file descriptors, we close dso objects and try to reopen
> > (check do_open function)
> > - when we close the dso object we check if number of opened
> > dso objects is below 'RLIMIT_NOFILE / 2'.. if it is, we keep
> > the dso opened, if not we close first dso in the list
> >
> > util/dso.h tries to describe that
>
> Yes, I know. But my question is why do this at close()? Isn't it
> sufficient to check the file limit at open() and close previous one if
> necessary?

hm, it's still the same operation to be done either in open
or in close.. but we would not need dso__data_close then..
ok, I'll make the change ;-)

thanks,
jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/