Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753215AbdLEWlc (ORCPT ); Tue, 5 Dec 2017 17:41:32 -0500 Received: from mga14.intel.com ([192.55.52.115]:31183 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753003AbdLEWkA (ORCPT ); Tue, 5 Dec 2017 17:40:00 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,365,1508828400"; d="scan'208";a="1252269789" From: kan.liang@intel.com To: acme@kernel.org, peterz@infradead.org, mingo@redhat.com, linux-kernel@vger.kernel.org Cc: jolsa@kernel.org, wangnan0@huawei.com, namhyung@kernel.org, ak@linux.intel.com, Kan Liang Subject: [PATCH 0/5] perf top overwrite mode Date: Tue, 5 Dec 2017 14:39:10 -0800 Message-Id: <1512513555-118798-1-git-send-email-kan.liang@intel.com> X-Mailer: git-send-email 2.5.5 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1824 Lines: 41 From: Kan Liang perf_top__mmap_read has severe performance issue in Knights Landing/Mill, when monitoring in heavy load system. It costs several minutes to finish, which is unacceptable. Currently, perf top is non overwrite mode. For non overwrite mode, it tries to read everything in the ringbuffer and doesn't pause the ringbuffer. Once there are lots of samples delivered persistently, the processing time could be very long. Also, the latest samples could be lost when the ringbuffer is full. It's better to change it to overwrite mode, which takes a snapshot for the system by pausing the ringbuffer and could significantly reducing the processing time (from several minutes to several seconds). Also, the overwrite mode always keep the latest samples. Patch 1-3: Modify perf_mmap__read_catchup and perf_mmap__read_backward. Make them ready for overwrite mode Patch 4: Swith perf top to overwrite mode Patch 5: The latency could be still higher than refresh time in some extreme cases. Give user some hints to reduce the latency. Kan Liang (5): perf tools: remove stale perf evlist mmap read for backward perf tools: rewrite perf mmap read for overwrite perf tools: reuse perf_mmap__read_catchup in perf_mmap__push perf top: switch to overwrite mode perf top: check the latency of perf_top__mmap_read tools/perf/builtin-top.c | 40 ++++++----- tools/perf/tests/backward-ring-buffer.c | 9 ++- tools/perf/ui/browsers/hists.c | 12 +++- tools/perf/util/evlist.c | 17 ----- tools/perf/util/evlist.h | 4 -- tools/perf/util/mmap.c | 119 +++++++++++++++----------------- tools/perf/util/mmap.h | 7 +- 7 files changed, 102 insertions(+), 106 deletions(-) -- 2.5.5