Hello,

This patchset if an attempt to support multi-threading in perf top.
In fact, perf top already run on two threads - a worker thread and a
display thread.  However processing all samples with a single thread
in a large machine can have scalability problems.

This patchset extends it to have multiple worker threads to process
samples concurrently.  Users can control the number of threads using
 --num-thread option.  And there's a collector thread for passing hist
entries from worker threads to the display thread.

This basically has same concept of my previous work with perf report
multi-thread support [1].  I decided to work on perf top first, since
it requires smaller changes.  If this work finishes with a good
result, I'll apply it to perf report as well, and continue to work on
it.  So please test (especially on large machines) and give feedbacks. :)

First 6 patches are fixes and cleanups which can be applied separately.
Rest implements multi-thread support and improves it.

You can get it from 'perf/top-threaded-v1' branch in my tree

  git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git

Any comments are welcome!
Thanks,
Namhyung


[1] https://lkml.org/lkml/2015/10/2/16


Namhyung Kim (16):
  perf top: Delete half-processed hist entries when exit
  perf top: Fix and cleanup perf_top__record_precise_ip()
  perf top: Factor out warnings about kernel addresses and symbols
  perf top: Factor out warnings in perf_top__record_precise_ip()
  perf top: Show warning messages in the display thread
  perf top: Get rid of access to hists->lock in perf_top__record_precise_ip()
  perf hists: Pass hists struct to hist_entry_iter struct
  perf tools: Export a couple of hist functions
  perf tools: Update hist entry's hists pointer
  perf hist: Add events_stats__add() and hists__add_stats()
  perf top: Implement basic parallel processing
  perf tools: Reduce lock contention when processing events
  perf top: Protect the seen list using mutex
  perf top: Separate struct perf_top_stats
  perf top: Add --num-thread option
  perf tools: Skip dso front cache for multi-threaded lookup

 tools/perf/builtin-report.c       |   1 +
 tools/perf/builtin-top.c          | 491 +++++++++++++++++++++++++++++---------
 tools/perf/tests/hists_cumulate.c |   1 +
 tools/perf/tests/hists_filter.c   |   1 +
 tools/perf/tests/hists_output.c   |   1 +
 tools/perf/util/event.c           |   7 +-
 tools/perf/util/hist.c            |  98 ++++++--
 tools/perf/util/hist.h            |  12 +
 tools/perf/util/machine.c         |  19 +-
 tools/perf/util/symbol.c          |   3 +-
 tools/perf/util/symbol.h          |   3 +-
 tools/perf/util/top.c             |  18 +-
 tools/perf/util/top.h             |  14 +-
 13 files changed, 514 insertions(+), 155 deletions(-)

-- 
2.6.2

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

Reply via email to