Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752710AbcDMRPw (ORCPT ); Wed, 13 Apr 2016 13:15:52 -0400 Received: from mail.kernel.org ([198.145.29.136]:36068 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752558AbcDMRPv (ORCPT ); Wed, 13 Apr 2016 13:15:51 -0400 Date: Wed, 13 Apr 2016 14:15:43 -0300 From: Arnaldo Carvalho de Melo To: Wang Nan Cc: linux-kernel@vger.kernel.org, pi3orama@163.com, He Kuang , Arnaldo Carvalho de Melo , Jiri Olsa , Masami Hiramatsu , Namhyung Kim , Zefan Li Subject: Re: [PATCH 00/10] perf tools: Use SIGUSR2 control data dumpping Message-ID: <20160413171543.GH9056@kernel.org> References: <1460535673-159866-1-git-send-email-wangnan0@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1460535673-159866-1-git-send-email-wangnan0@huawei.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3399 Lines: 80 Em Wed, Apr 13, 2016 at 08:21:03AM +0000, Wang Nan escreveu: > This patch set is a preparation to support overwritable ring buffer. > However, even without the kernel side core patch [1] is accept this > patch set is still useful. > With this patch set, perf switches output when receiving SIGUSR2. For > example: > # perf record -a -F99 --switch-output & > [1] 26435 > # kill -s SIGUSR2 26435 > [ perf record: dump data: Woken up 1 times ] > # [ perf record: Dump perf.data.2016041323544373 ] > # kill -s SIGUSR2 26435 > [ perf record: dump data: Woken up 1 times ] > # [ perf record: Dump perf.data.2016041323544730 ] > # fg > perf record -a -F99 --switch-output > ^C[ perf record: Woken up 1 times to write data ] > [ perf record: Dump perf.data.2016041323545019 ] > [ perf record: Captured and wrote 0.395 MB perf.data. ] > > User can periodically generates perf trace with a simple script, then > remove most of them, only keeps scripts collected when something > unusual is detected. Looks useful, I'll test it, but it ends up adding overhead at the time of the switch that sometimes may not be interesting. In such cases maybe it would be interesting to instead of a signal and the perf.data file switch to just add a marker, i.e. a bpf or perf probe event, even the equivalent to a trace_printk(), to be used later for doing the slicing. But yeah, for lower freq events doing like you do, to allow use of 'perf script', unchanged, to determine what slices (files) should be kept looks useful. > After [1], perf can be totally silent before receiving SIGUSR2. Trace > is collected in kernel overwritable ring buffer, and dumpped when > SIGUSR2 is received. > > [1] http://lkml.kernel.org/r/1459865478-53413-1-git-send-email-wangnan0@huawei.com > > Cc: Wang Nan > Cc: He Kuang > Cc: Arnaldo Carvalho de Melo > Cc: Jiri Olsa > Cc: Masami Hiramatsu > Cc: Namhyung Kim > Cc: Zefan Li > Cc: pi3orama@163.com > > Wang Nan (10): > perf tools: Make ordered_events reusable > perf tools: Add perf_data_file__switch() helper > perf record: Turns auxtrace_snapshot_enable into 3 states > perf record: Add '--timestamp-filename' option to append timestamp to > output filename > perf record: Split output into multiple files via '--switch-output' > perf record: Force enable --timestamp-filename when --switch-output is > provided > perf record: Disable buildid cache options by default in switch output > mode > perf record: Re-synthesize tracking events after output switching > perf record: Generate tracking events for process forked by perf > perf core: Add backward attribute to perf event > > include/linux/perf_event.h | 28 +++++- > include/uapi/linux/perf_event.h | 3 +- > kernel/events/core.c | 48 ++++++++- > kernel/events/ring_buffer.c | 16 ++- > tools/perf/builtin-record.c | 208 +++++++++++++++++++++++++++++++++++---- > tools/perf/util/data.c | 41 ++++++++ > tools/perf/util/data.h | 11 ++- > tools/perf/util/ordered-events.c | 9 ++ > tools/perf/util/ordered-events.h | 1 + > tools/perf/util/session.c | 6 +- > 10 files changed, 341 insertions(+), 30 deletions(-) > > -- > 1.8.3.4