From: Namhyung Kim <namhyung@kernel.org>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>,
linux-kernel@vger.kernel.org,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Corey Ashford <cjashfor@linux.vnet.ibm.com>,
David Ahern <dsahern@gmail.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Ingo Molnar <mingo@kernel.org>,
Jean Pihet <jean.pihet@linaro.org>,
Paul Mackerras <paulus@samba.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: Re: [PATCH 06/14] perf tools: Cache dso data file descriptor
Date: Thu, 29 May 2014 09:02:36 +0900 [thread overview]
Message-ID: <87sinth2oz.fsf@sejong.aot.lge.com> (raw)
In-Reply-To: <20140527073738.GA12920@krava.brq.redhat.com> (Jiri Olsa's message of "Tue, 27 May 2014 09:37:38 +0200")
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?
>
>>
>> > +
>> > +void dso__data_close(struct dso *dso)
>> > +{
>> > + if (dso->data.fd >= 0)
>> > + data_close();
>> > +}
>>
>> Hmm.. it's confusing dso__data_close(dso) closes an other dso rather
>> than the given dso. And this dso__data_close() is not paired with any
>> _open() also these close calls make me confusing which one to use. ;-p
>
> thats due to the caching.. as explained above
>
> About the pairing.. originally the interface was only dso__data_fd
> that opened and returned fd, which the caller needed to close.
>
> I added dso__data_close so we could keep track of file descriptors.
>
> I could add dso__data_open I guess, but it is dso__data_fd which is
> needed for elf interface anyway.
I'd rather suggest dropping the open/close idiom for this case since
it's confusing. What about get/put or get_fd/put_fd?
Thanks,
Namhyung
next prev parent reply other threads:[~2014-05-29 0:02 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-15 17:23 [PATCHv2 00/14] perf tools: Speedup DWARF unwind Jiri Olsa
2014-05-15 17:23 ` [PATCH 01/14] perf tools: Cache register accesses for unwind processing Jiri Olsa
2014-05-15 17:23 ` [PATCH 02/14] perf tools: Separate dso data related variables Jiri Olsa
2014-05-15 17:23 ` [PATCH 03/14] perf tools: Add data_fd into dso object Jiri Olsa
2014-05-15 17:23 ` [PATCH 04/14] perf tools: Add global list of opened dso objects Jiri Olsa
2014-05-15 17:23 ` [PATCH 05/14] perf tools: Add global count " Jiri Olsa
2014-05-15 17:23 ` [PATCH 06/14] perf tools: Cache dso data file descriptor Jiri Olsa
2014-05-27 1:05 ` Namhyung Kim
2014-05-27 7:37 ` Jiri Olsa
2014-05-29 0:02 ` Namhyung Kim [this message]
2014-05-29 9:01 ` Jiri Olsa
2014-05-15 17:23 ` [PATCH 07/14] perf tools: Add file size check and factor dso__data_read_offset Jiri Olsa
2014-05-15 17:23 ` [PATCH 08/14] perf tools: Allow to close dso fd in case of open failure Jiri Olsa
2014-05-15 17:23 ` [PATCH 09/14] perf tools: Add dso__data_* interface descriptons Jiri Olsa
2014-05-27 1:06 ` Namhyung Kim
2014-05-27 7:38 ` Jiri Olsa
2014-05-15 17:23 ` [PATCH 10/14] perf tests: Spawn child for each test Jiri Olsa
2014-05-27 1:08 ` Namhyung Kim
2014-05-27 7:39 ` Jiri Olsa
2014-05-15 17:23 ` [PATCH 11/14] perf tests: Allow reuse of test_file function Jiri Olsa
2014-05-15 17:23 ` [PATCH 12/14] perf tests: Add test interface for dso data fd limit Jiri Olsa
2014-05-27 1:10 ` Namhyung Kim
2014-05-27 7:51 ` Jiri Olsa
2014-05-15 17:23 ` [PATCH 13/14] perf tests: Add test for caching dso file descriptors Jiri Olsa
2014-05-27 1:36 ` Namhyung Kim
2014-05-27 7:54 ` Jiri Olsa
2014-05-29 0:06 ` Namhyung Kim
2014-05-29 8:37 ` Jiri Olsa
2014-05-30 2:11 ` Namhyung Kim
2014-05-30 8:42 ` Jiri Olsa
2014-05-15 17:23 ` [PATCH 14/14] perf tests: Add test for closing dso objects on EMFILE error Jiri Olsa
2014-05-27 1:43 ` Namhyung Kim
2014-05-27 7:59 ` Jiri Olsa
2014-05-23 8:13 ` [PATCHv2 00/14] perf tools: Speedup DWARF unwind Jiri Olsa
2014-05-23 13:26 ` Jean Pihet
2014-05-26 17:36 ` Jiri Olsa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87sinth2oz.fsf@sejong.aot.lge.com \
--to=namhyung@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=cjashfor@linux.vnet.ibm.com \
--cc=dsahern@gmail.com \
--cc=fweisbec@gmail.com \
--cc=jean.pihet@linaro.org \
--cc=jolsa@kernel.org \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=paulus@samba.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome