lkml.org 
[lkml]   [2015]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCHSET 00/16] perf top: Add multi-thread support (v1)
    Date
    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



    \
     
     \ /
      Last update: 2015-12-10 09:41    [W:4.787 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site