From: Jiri Olsa <jolsa@redhat.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: linux-kernel@vger.kernel.org,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Borislav Petkov <bp@suse.de>,
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>, Jiri Olsa <jolsa@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Paul Mackerras <paulus@samba.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: Re: [PATCH 13/14] tools lib fd array: Allow associating an integer cookie with each entry
Date: Thu, 11 Sep 2014 12:33:19 +0200 [thread overview]
Message-ID: <20140911103319.GA13634@krava.brq.redhat.com> (raw)
In-Reply-To: <1410358129-9965-14-git-send-email-acme@kernel.org>
On Wed, Sep 10, 2014 at 11:08:48AM -0300, Arnaldo Carvalho de Melo wrote:
SNIP
> }
>
> -int fdarray__filter(struct fdarray *fda, short revents)
> +int fdarray__filter(struct fdarray *fda, short revents,
> + void (*entry_destructor)(struct fdarray *fda, int fd))
> {
> int fd, nr = 0;
>
> @@ -80,11 +94,17 @@ int fdarray__filter(struct fdarray *fda, short revents)
> return 0;
>
> for (fd = 0; fd < fda->nr; ++fd) {
> - if (fda->entries[fd].revents & revents)
> + if (fda->entries[fd].revents & revents) {
> + if (entry_destructor)
> + entry_destructor(fda, fd);
the desctructor callback could have the 'priv' as an argument
so we dont need to touch fdarray internals in upper layer
> +
> continue;
> + }
>
> - if (fd != nr)
> + if (fd != nr) {
> fda->entries[nr] = fda->entries[fd];
> + fda->priv[nr] = fda->priv[fd];
> + }
>
> ++nr;
> }
> diff --git a/tools/lib/api/fd/array.h b/tools/lib/api/fd/array.h
> index de38361ba69e..7b2870a96898 100644
> --- a/tools/lib/api/fd/array.h
> +++ b/tools/lib/api/fd/array.h
> @@ -10,6 +10,7 @@ struct fdarray {
> int nr_alloc;
> int nr_autogrow;
> struct pollfd *entries;
> + int *priv;
I like the idea of private pointer for each fd, but I think
it should be 'void*' to keep the library generic. The 'int*'
is related only to the evlist usage of this.
jirka
next prev parent reply other threads:[~2014-09-11 10:33 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-10 14:08 [RFC 00/14] perf pollfd v3 Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 01/14] perf evlist: Introduce perf_evlist__filter_pollfd method Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 02/14] perf tests: Add test for perf_evlist__filter_pollfd() Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 03/14] perf evlist: Monitor POLLERR and POLLHUP events too Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 04/14] perf evlist: We need to poll all event file descriptors Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 05/14] perf record: Filter out POLLHUP'ed " Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 06/14] perf trace: " Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 07/14] perf evlist: Allow growing pollfd on add method Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 08/14] perf tests: Add pollfd growing test Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 09/14] perf kvm stat live: Use perf_evlist__add_pollfd() instead of local equivalent Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 10/14] perf evlist: Introduce poll method for common code idiom Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 11/14] tools lib api: Adopt fdarray class from perf's evlist Arnaldo Carvalho de Melo
2014-09-11 15:09 ` [PATCH] tools lib fd array: Do not set fd as non blocking evlist Jiri Olsa
2014-09-11 15:27 ` Arnaldo Carvalho de Melo
2014-09-11 15:53 ` Arnaldo Carvalho de Melo
2014-09-12 12:58 ` [PATCH 11/14] tools lib api: Adopt fdarray class from perf's evlist Jiri Olsa
2014-09-12 13:44 ` Arnaldo Carvalho de Melo
2014-09-12 14:16 ` Jiri Olsa
2014-09-12 14:22 ` Arnaldo Carvalho de Melo
2014-09-12 16:54 ` Borislav Petkov
2014-09-12 20:48 ` Arnaldo Carvalho de Melo
2014-09-12 22:12 ` Borislav Petkov
2014-09-22 12:29 ` Jiri Olsa
2014-09-10 14:08 ` [PATCH 12/14] perf evlist: Refcount mmaps Arnaldo Carvalho de Melo
2014-09-10 14:08 ` [PATCH 13/14] tools lib fd array: Allow associating an integer cookie with each entry Arnaldo Carvalho de Melo
2014-09-11 10:33 ` Jiri Olsa [this message]
2014-09-11 13:29 ` Arnaldo Carvalho de Melo
2014-09-11 14:59 ` Jiri Olsa
2014-09-11 15:23 ` Arnaldo Carvalho de Melo
2014-09-11 15:35 ` Jiri Olsa
2014-09-11 15:49 ` Arnaldo Carvalho de Melo
2014-09-11 16:07 ` Jiri Olsa
2014-09-10 14:08 ` [PATCH 14/14] perf evlist: Unmap ring buffer when fd is nuked Arnaldo Carvalho de Melo
2014-09-11 12:27 ` Jiri Olsa
2014-09-11 13:40 ` Arnaldo Carvalho de Melo
2014-09-11 11:33 ` [RFC 00/14] perf pollfd v3 Jiri Olsa
2014-09-11 11:48 ` Jiri Olsa
2014-09-11 13:30 ` Arnaldo Carvalho de Melo
2014-09-11 21:36 ` Arnaldo Carvalho de Melo
2014-09-18 16:04 ` Arnaldo Carvalho de Melo
2014-09-22 13:35 ` Jiri Olsa
2014-09-22 14:49 ` Arnaldo Carvalho de Melo
2014-09-22 14:51 ` Jiri Olsa
2014-09-22 21:10 ` Arnaldo Carvalho de Melo
2014-09-23 9:26 ` Jiri Olsa
2014-09-23 12:46 ` Arnaldo Carvalho de Melo
2014-09-23 12:52 ` 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=20140911103319.GA13634@krava.brq.redhat.com \
--to=jolsa@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=bp@suse.de \
--cc=cjashfor@linux.vnet.ibm.com \
--cc=dsahern@gmail.com \
--cc=fweisbec@gmail.com \
--cc=jean.pihet@linaro.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@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