Re: [GIT PULL 00/14] perf tools polling fixes

From: Ingo Molnar
Date: Fri Sep 26 2014 - 05:15:37 EST



* Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:

> Hi Ingo,
>
> Please consider pulling into tip/perf/core.
>
> Best Regards,
>
> - Arnaldo
>
> The following changes since commit 521e8bac67a71a6544274f39d5c61473e0e54ac0:
>
> perf/x86/intel/uncore: Update support for client uncore IMC PMU (2014-09-24 14:48:25 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-fdarray-for-mingo
>
> for you to fetch changes up to 46fb3c21d20415dd2693570c33d0ea6eb8745e04:
>
> perf trace: Filter out POLLHUP'ed file descriptors (2014-09-25 16:46:56 -0300)
>
> ----------------------------------------------------------------
> Infrastructure:
>
> We were not handling POLLHUP notifications for event file descriptors.
>
> Fix it by filtering entries in the events file descriptor array after
> poll returns, refcounting mmaps so that when the last fd pointing to
> a perf mmap goes away we do the unmap.
>
> User visible:
>
> Now 'record' and 'trace' properly exit when a target thread exits.
>
> Arnaldo Carvalho de Melo (14):
> perf evlist: Introduce perf_evlist__filter_pollfd method
> perf tests: Add test for perf_evlist__filter_pollfd()
> perf evlist: Monitor POLLERR and POLLHUP events too
> perf evlist: We need to poll all event file descriptors
> perf evlist: Allow growing pollfd on add method
> perf tests: Add pollfd growing test
> perf kvm stat live: Use perf_evlist__add_pollfd() instead of local equivalent
> perf evlist: Introduce poll method for common code idiom
> tools lib api: Adopt fdarray class from perf's evlist
> perf evlist: Refcount mmaps
> tools lib fd array: Allow associating an integer cookie with each entry
> perf evlist: Unmap when all refcounts to fd are gone and events drained
> perf record: Filter out POLLHUP'ed file descriptors
> perf trace: Filter out POLLHUP'ed file descriptors
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (14):
> perf evlist: Introduce perf_evlist__filter_pollfd method
> perf tests: Add test for perf_evlist__filter_pollfd()
> perf evlist: Monitor POLLERR and POLLHUP events too
> perf evlist: We need to poll all event file descriptors
> perf evlist: Allow growing pollfd on add method
> perf tests: Add pollfd growing test
> perf kvm stat live: Use perf_evlist__add_pollfd() instead of local equivalent
> perf evlist: Introduce poll method for common code idiom
> tools lib api: Adopt fdarray class from perf's evlist
> perf evlist: Refcount mmaps
> tools lib fd array: Allow associating an integer cookie with each entry
> perf evlist: Unmap when all refcounts to fd are gone and events drained
> perf record: Filter out POLLHUP'ed file descriptors
> perf trace: Filter out POLLHUP'ed file descriptors
>
> tools/lib/api/Makefile | 7 +-
> tools/lib/api/fd/array.c | 127 ++++++++++++++++++++++
> tools/lib/api/fd/array.h | 46 ++++++++
> tools/perf/Makefile.perf | 3 +-
> tools/perf/builtin-kvm.c | 24 ++---
> tools/perf/builtin-record.c | 9 +-
> tools/perf/builtin-top.c | 4 +-
> tools/perf/builtin-trace.c | 7 +-
> tools/perf/tests/builtin-test.c | 8 ++
> tools/perf/tests/fdarray.c | 174 ++++++++++++++++++++++++++++++
> tools/perf/tests/open-syscall-tp-fields.c | 2 +-
> tools/perf/tests/perf-record.c | 2 +-
> tools/perf/tests/task-exit.c | 2 +-
> tools/perf/tests/tests.h | 2 +
> tools/perf/util/evlist.c | 105 +++++++++++++++---
> tools/perf/util/evlist.h | 16 ++-
> tools/perf/util/python.c | 6 +-
> 17 files changed, 501 insertions(+), 43 deletions(-)
> create mode 100644 tools/lib/api/fd/array.c
> create mode 100644 tools/lib/api/fd/array.h
> create mode 100644 tools/perf/tests/fdarray.c

Pulled into tip:perf/core, thanks a lot Arnaldo!

Ingo
--
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/