Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752176AbdLFXd1 (ORCPT ); Wed, 6 Dec 2017 18:33:27 -0500 Received: from mga14.intel.com ([192.55.52.115]:6559 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751748AbdLFXd0 (ORCPT ); Wed, 6 Dec 2017 18:33:26 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,370,1508828400"; d="scan'208";a="9735645" 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, yao.jin@linux.intel.com, Kan Liang Subject: [PATCH V2 0/8] perf top overwrite mode Date: Wed, 6 Dec 2017 15:32:55 -0800 Message-Id: <1512603183-42754-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: 2400 Lines: 55 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-4: Modify perf_mmap__read_catchup and perf_mmap__read_backward. Introduce perf_mmap__read_event Make generic code ready for overwrite mode Patch 5-7: Perf top should only support either overwrite or non-overwrite mode. Switch default mode to overwrite mode If kernel doesn't support overwrite mode, fall back to non-overwrite mode. Patch 8: The latency could be still higher than refresh time in some extreme cases. Give user some hints to reduce the latency. Changes since V1: - New patches 4-6 - Support both overwrite mode and non-overwrite mode. If kernel doesn't support default overwrite mode, fall back to non-overwrite mode. Kan Liang (8): 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 tools: introduce perf_mmap__read_event perf top: check per event overwrite term perf top: add overwrite fall back perf top: switch default mode to overwrite mode perf top: check the latency of perf_top__mmap_read tools/perf/builtin-top.c | 139 +++++++++++++++++++++++++++---- 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 | 140 ++++++++++++++++++-------------- tools/perf/util/mmap.h | 10 ++- 7 files changed, 229 insertions(+), 102 deletions(-) -- 2.5.5