On Wed, Sep 10, 2014 at 11:08:46AM -0300, Arnaldo Carvalho de Melo wrote: SNIP
> +} > + > +void fdarray__exit(struct fdarray *fda) > +{ > + free(fda->entries); > + fdarray__init(fda, 0); > +} > + > +void fdarray__delete(struct fdarray *fda) > +{ > + fdarray__exit(fda); > + free(fda); > +} > + > +int fdarray__add(struct fdarray *fda, int fd, short revents) > +{ > + if (fda->nr == fda->nr_alloc && > + fdarray__grow(fda, fda->nr_autogrow) < 0) > + return -ENOMEM; > + > + fcntl(fd, F_SETFL, O_NONBLOCK); also I spot this one and couldn't think of reason for it, attached patch makes no behaviour difference for me.. I might be missing something, but I dont see any blocking operation in perf related data reads. The git log history says it was there since early days. jirka --- There's no reason for the current user of this API to have non blocking fds. Also it should be up to user to set this, not this object. Cc: Adrian Hunter <adrian.hun...@intel.com> Cc: Arnaldo Carvalho de Melo <a...@redhat.com> Cc: Borislav Petkov <b...@suse.de> Cc: Corey Ashford <cjash...@linux.vnet.ibm.com> Cc: David Ahern <dsah...@gmail.com> Cc: Frederic Weisbecker <fweis...@gmail.com> Cc: Ingo Molnar <mi...@kernel.org> Cc: Jean Pihet <jean.pi...@linaro.org> Cc: Namhyung Kim <namhy...@kernel.org> Cc: Paul Mackerras <pau...@samba.org> Cc: Peter Zijlstra <a.p.zijls...@chello.nl> Signed-off-by: Jiri Olsa <jo...@kernel.org> --- tools/lib/api/fd/array.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/tools/lib/api/fd/array.c b/tools/lib/api/fd/array.c index 3f6d1a0..0e636c4 100644 --- a/tools/lib/api/fd/array.c +++ b/tools/lib/api/fd/array.c @@ -78,7 +78,6 @@ int fdarray__add(struct fdarray *fda, int fd, short revents) fdarray__grow(fda, fda->nr_autogrow) < 0) return -ENOMEM; - fcntl(fd, F_SETFL, O_NONBLOCK); fda->entries[fda->nr].fd = fd; fda->entries[fda->nr].events = revents; fda->nr++; -- 1.7.7.6 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/