From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751289AbbLJHyE (ORCPT ); Thu, 10 Dec 2015 02:54:04 -0500 Received: from LGEAMRELO12.lge.com ([156.147.23.52]:33529 "EHLO lgeamrelo12.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753665AbbLJHxi (ORCPT ); Thu, 10 Dec 2015 02:53:38 -0500 X-Original-SENDERIP: 156.147.1.121 X-Original-MAILFROM: namhyung@kernel.org X-Original-SENDERIP: 10.177.227.17 X-Original-MAILFROM: namhyung@kernel.org From: Namhyung Kim To: Arnaldo Carvalho de Melo Cc: Ingo Molnar , Peter Zijlstra , Jiri Olsa , LKML , David Ahern , Frederic Weisbecker , Andi Kleen , Stephane Eranian , Adrian Hunter Subject: [PATCHSET 00/16] perf top: Add multi-thread support (v1) Date: Thu, 10 Dec 2015 16:53:19 +0900 Message-Id: <1449734015-9148-1-git-send-email-namhyung@kernel.org> X-Mailer: git-send-email 2.6.2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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