Received: by 10.223.176.46 with SMTP id f43csp32171wra; Thu, 18 Jan 2018 13:28:58 -0800 (PST) X-Google-Smtp-Source: ACJfBouKy0tEnNUPu73XmnjRYQCRy+sJNaKS1bGcIBVfv9DaqNE+Hkcs81+cihxKrvgfcpNGYFDT X-Received: by 10.101.81.197 with SMTP id i5mr23185492pgq.220.1516310938116; Thu, 18 Jan 2018 13:28:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516310938; cv=none; d=google.com; s=arc-20160816; b=qih6PwIewMRfJRs6V2vIgtjNbS9rAjhcSJlBC2ZzlY+cfnjunyVeHGNQfXdCK2uDsQ V4qSSBzcf3+mvaTHPny+iNSwPmQCqt/p+0dv2DScyCs+v3b1QDtnAwiJQFSYTtLp/EsM FWKoiFqGmvdqpW/iRxptlja3FSV5wZn9O5qoSDuI34vsAvx5rGriNwamIBtO4xp21mfO fesDtc+B6VkFwetUaYwV077Nb+Zpt4DP9WwZkM6RSx7Wx1yISTI2cwioQB2+ImiOlqIq Z2yToh5rBhulQ1l5tFGudVWKfmru6QV3lJ2ExXyMvYCyXn7hJUvfiaEVe1Mh4BFGpPEo k1uA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=RQjLbgKcP6c3wBN87a56FdBjfHiAix3csPiSgqFl3Nk=; b=BSrau2Od16djffShREmSSQz6gjdgUy5oeWD4XZGNWXkQ7opgNr6c7O0RqQXIcP9Ms9 802bBQ/fls27P7IEz0jS4dYZRi47XBX77MdMOAwZaHVd9M17DSzAOHQ4IGmyiU6TTKZY nIkyKRX410PqKmBz90QX59vBUHVhCHlmhxODlE2PFhCbcuqNsOnGsdHRRQpfWPWnc8Kw C8ehc/8l6o73c1nnCgssXL0OLaIMottQwArfFhHbLdrtyH1ISaBfmiNwHe911LHlL4mw q5VSBi7ehQXb+ndWFtFJ5hzbjZm0eQWLQv9RsnmJVQrwCpeRRUDr2VTuuLiAaaJcaGxG QECQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q4-v6si218999plb.667.2018.01.18.13.28.44; Thu, 18 Jan 2018 13:28:58 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754613AbeARV2C (ORCPT + 99 others); Thu, 18 Jan 2018 16:28:02 -0500 Received: from mga04.intel.com ([192.55.52.120]:47421 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932234AbeARV1c (ORCPT ); Thu, 18 Jan 2018 16:27:32 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Jan 2018 13:27:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,378,1511856000"; d="scan'208";a="11477193" Received: from otc-knm-01.jf.intel.com ([10.54.39.34]) by fmsmga008.fm.intel.com with ESMTP; 18 Jan 2018 13:27:29 -0800 From: kan.liang@intel.com To: acme@kernel.org, peterz@infradead.org, mingo@redhat.com, linux-kernel@vger.kernel.org Cc: wangnan0@huawei.com, jolsa@kernel.org, namhyung@kernel.org, ak@linux.intel.com, yao.jin@linux.intel.com, Kan Liang Subject: [PATCH V5 00/17] perf top overwrite mode Date: Thu, 18 Jan 2018 13:26:15 -0800 Message-Id: <1516310792-208685-1-git-send-email-kan.liang@intel.com> X-Mailer: git-send-email 2.5.5 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kan Liang ------ Changes since V4: - Added a bug fix patch which recalculate the 'size' in perf_mmap__push() - Added a cleanup patch for perf_mmap__push() - Modified the patch which introduce perf_mmap__read_init() - Added a patch to change return value logic for perf_mmap__read_init() - Dropped the unnecessary refcnt check in perf_mmap__read_init() The check will be done later in perf_mmap__read_event(). - Used warn_lost_event to replace !no_lost_event_warning Changes since V3: - Separated patches to add new interface perf_mmap__read_init and apply to the perf_mmap__push() - Corrected the comments of perf_mmap__read_done() - Name the pointer parameter with 'p' postfix - Add new rules to check per-event overwrite term in comments. Do the check before perf_evlist__config() - Add a new patch to disable/enable event lost warning in hists browser. Changes since V2: - Move duplicate 'map->prev' out of perf_mmap__read. Modify the perf_mmap__read_event accordingly. - Introduce new interface perf_mmap__read_init to calculate the ringbuffer position - Check perf_missing_features.write_backward - Discard stale interfaces perf_mmap__read_backward and perf_mmap__read_catchup 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. ------ 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-10: Introduce new interfaces for generic code to support overwrite mode for one by one event read. Discards stale interfaces. The patches can be merged separately. Patch 11-17: Add overwrite support to perf top. 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. Kan Liang (17): perf evlist: remove stale mmap read for backward perf mmap: fix: recalculate size for overwrite mode. perf mmap: cleanup perf_mmap__push() perf mmap: introduce perf_mmap__read_init() perf mmap: add new return value logic for perf_mmap__read_init() perf mmap: discard 'prev' in perf_mmap__read() perf mmap: introduce perf_mmap__read_done perf mmap: introduce perf_mmap__read_event() perf test: update mmap read functions for backward-ring-buffer test perf mmap: discard legacy interface for mmap read perf top: check per-event overwrite term perf evsel: expose perf_missing_features.write_backward perf top: add overwrite fall back perf hists browser: add parameter to disable lost event warning perf top: remove lost events checking perf top: switch default mode to overwrite mode perf top: check the latency of perf_top__mmap_read tools/perf/builtin-c2c.c | 4 +- tools/perf/builtin-report.c | 3 +- tools/perf/builtin-top.c | 150 ++++++++++++++++++++++++++++++-- tools/perf/tests/backward-ring-buffer.c | 7 +- tools/perf/ui/browsers/hists.c | 38 +++++--- tools/perf/ui/browsers/hists.h | 3 +- tools/perf/util/evlist.c | 17 ---- tools/perf/util/evlist.h | 4 - tools/perf/util/evsel.c | 5 ++ tools/perf/util/evsel.h | 2 + tools/perf/util/hist.h | 6 +- tools/perf/util/mmap.c | 141 +++++++++++++++++------------- tools/perf/util/mmap.h | 10 ++- 13 files changed, 277 insertions(+), 113 deletions(-) -- 2.5.5