hi, adding support to quit sampling commands: record,top,trace,kvm stat live
when all the monitored events are closed, like following perf command will now exit when monitored process (pid 1234) exits: $ perf record -p 1234 I added independent poller object to handle basic polling tasks. I had to factor some parts, so sending this as RFC, because I'm pretty sure I broke something else ;-) The patch#1 is kernel change, which is needed for the patchset to work properly. The current behavior stays without this kernel change. The code is based on latest Arnaldo's perf/core and following kernel change: http://marc.info/?l=linux-kernel&m=140715910417130&w=2 The patchset is also reachable in here: git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git perf/core_poll thanks for comments, jirka Cc: Adrian Hunter <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Corey Ashford <[email protected]> Cc: David Ahern <[email protected]> Cc: Frederic Weisbecker <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Jean Pihet <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Peter Zijlstra <[email protected]> Signed-off-by: Jiri Olsa <[email protected]> --- Jiri Olsa (20): perf: Add PERF_EVENT_STATE_EXIT state for events with exited task perf tools: Add poller object to handle polling globaly perf tests: Add poller object test perf tools: Add support to traverse xyarrays perf tools: Introduce perf_evsel__fd function perf tools: Add evlist/evsel poller object support perf record: Add support to see event's ERR and HUP poll errors perf tools: Add set_term_quiet_input helper function perf tui browser: Add interface to terminate browser from uotside perf top: Add support to see event's ERR and HUP poll errors perf top: Join the display thread on exit perf top: Use set_term_quiet_input for terminal input perf top: Setup signals for terminal output perf top: Use poller object for display thread stdin perf kvm: Fix stdin handling for 'kvm stat live' command perf kvm: Add support to see event's ERR and HUP poll errors perf trace: Add support to see event's ERR and HUP poll errors perf python: Use poller object for polling perf tests: Use poller object for polling perf tools: Remove pollfd stuff out of evlist object include/linux/perf_event.h | 1 + kernel/events/core.c | 12 ++++- tools/perf/Makefile.perf | 4 ++ tools/perf/builtin-kvm.c | 123 +++++++++++++++++++++++------------------------ tools/perf/builtin-record.c | 29 ++++++++++- tools/perf/builtin-report.c | 3 +- tools/perf/builtin-top.c | 104 ++++++++++++++++++++++++++-------------- tools/perf/builtin-trace.c | 25 +++++++++- tools/perf/tests/builtin-test.c | 8 ++++ tools/perf/tests/open-syscall-tp-fields.c | 9 +++- tools/perf/tests/perf-record.c | 4 -- tools/perf/tests/poller.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/tests/task-exit.c | 9 +++- tools/perf/tests/tests.h | 2 + tools/perf/tests/xyarray.c | 33 +++++++++++++ tools/perf/ui/browser.c | 4 +- tools/perf/ui/browser.h | 8 +++- tools/perf/ui/browsers/annotate.c | 2 +- tools/perf/ui/browsers/header.c | 2 +- tools/perf/ui/browsers/hists.c | 39 ++++++++------- tools/perf/ui/browsers/map.c | 2 +- tools/perf/ui/browsers/scripts.c | 2 +- tools/perf/ui/keysyms.h | 1 + tools/perf/ui/tui/util.c | 2 +- tools/perf/util/evlist.c | 38 ++++++--------- tools/perf/util/evlist.h | 7 ++- tools/perf/util/evsel.c | 21 +++++++- tools/perf/util/evsel.h | 10 ++++ tools/perf/util/hist.h | 6 ++- tools/perf/util/kvm-stat.h | 1 - tools/perf/util/poller.c | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/poller.h | 88 ++++++++++++++++++++++++++++++++++ tools/perf/util/python-ext-sources | 2 + tools/perf/util/python.c | 19 ++++++-- tools/perf/util/util.c | 13 +++++ tools/perf/util/util.h | 2 + tools/perf/util/xyarray.c | 4 +- tools/perf/util/xyarray.h | 6 +++ 38 files changed, 832 insertions(+), 172 deletions(-) create mode 100644 tools/perf/tests/poller.c create mode 100644 tools/perf/tests/xyarray.c create mode 100644 tools/perf/util/poller.c create mode 100644 tools/perf/util/poller.h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

