Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp867722ybk; Wed, 20 May 2020 14:11:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxR02dXJi0X8IQx377EBthHNR6jnBUfGsQegcWIog/nDgPwm8qWX8h0ZHGMrYsnQD9tIElu X-Received: by 2002:a17:906:8304:: with SMTP id j4mr918278ejx.200.1590009104933; Wed, 20 May 2020 14:11:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590009104; cv=none; d=google.com; s=arc-20160816; b=hf3x0LmEDR9tEKR9JBBBQmMrvSEmQcCJYJ7XvH1+VX6kYdgfZeu7BTmNbi0mqH0/d3 jKl4NGyPKAvQeES7/E2UTQKpfd0YI/NqoOlo+DiwQopjUwIyCb/QiDFjp+IDXELpaWcu BfhSSTa/ZEigVi++SFCXuDHkzCoJFk+Xq2kt7oe7B9g1Lcg5EKqO41TgEDpV8+VA/QVo nt+WqvfdDQ5SeQBX06wQtA8YVmRpfERUC+sOB+Xy9Fg15X+gGj9VetsdWANzIvRnUO1h Kf8YGOfAsSKePZOamBRcry2iVpmCGXsY4qvgOBGtBJ5JvpfT8AciCrQXJyaPDZz5GwJr MYmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=KVM6o9FzEVzD4vGw3kWXQiT1pXmfc8vI7ryQU8Z6M+s=; b=qwncVjKI29Mi7JfX6+4wQqEz9KVheLjfK7nJgYZdfkLg6AsVx52FfH+La5gS9nj7Yp vufg+x1U4wesmraCBlc/4YrPxzHSYDKr16uz2ywDB3ws2NDOpcVLz5QzJtemQt2drtC3 WWVqMO9UT3ghUwOJtaSXM9xhMevUWNzMQRzHllp9M8ZSi6UaFCYcsMHm8GeK9u00cpuq bU4JFcOOaBrmHSYOPpZmsJIMCYzI3AXyiE43CX0WfFKUvTwS3SjdggAVQPf5AmWrBPH6 6AjT8ltuZXaANMwD9gPKfRIev9jTzEBltpn3o+pdX9zGEEyPlfyAjqZoG1XH63vLpT1/ Vo6A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=BIX6dy2u; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ca1si2212361ejb.42.2020.05.20.14.11.22; Wed, 20 May 2020 14:11:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=BIX6dy2u; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728199AbgETVJR (ORCPT + 99 others); Wed, 20 May 2020 17:09:17 -0400 Received: from mail.kernel.org ([198.145.29.99]:34048 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727083AbgETVJR (ORCPT ); Wed, 20 May 2020 17:09:17 -0400 Received: from quaco.ghostprotocols.net (unknown [179.97.37.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A1549207E8; Wed, 20 May 2020 21:09:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590008956; bh=ptqItCDH9o9pF0WAAEe7vrVWcF72lf1db3H1PlvvZBI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=BIX6dy2uSkCaZ2ZWGiTohSWyIBcIUVDfHCgMwKaYLKy/xHaqmVCqC+QEm7GCJtqgE hM7FAdVBM0uSXlrg3366o6ZRc6IhD9ONoKGuXHJJdasKurTCFEJKcmNrsQvGZSu1jW 1gJMaXGRSwH/nGj978U79DnXinPmbxQAy0rqhzUA= Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id D4B9A40AFD; Wed, 20 May 2020 18:09:14 -0300 (-03) Date: Wed, 20 May 2020 18:09:14 -0300 From: Arnaldo Carvalho de Melo To: Changbin Du Cc: Jiri Olsa , Peter Zijlstra , Ingo Molnar , Namhyung Kim , Steven Rostedt , linux-kernel@vger.kernel.org Subject: Re: [PATCH 14/19] perf ftrace: add option -P/--no-pager to disable pager Message-ID: <20200520210914.GC32678@kernel.org> References: <20200510150628.16610-1-changbin.du@gmail.com> <20200510150628.16610-15-changbin.du@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200510150628.16610-15-changbin.du@gmail.com> X-Url: http://acmel.wordpress.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Sun, May 10, 2020 at 11:06:23PM +0800, Changbin Du escreveu: > Sometimes we want perf displays trace immediately. So this adds an option > '-P/--no-pager' to disable pager if needed. Try: perf record sleep 5 perf script Then: perf --no-pager script I.e. its there already. - Arnaldo > > Signed-off-by: Changbin Du > --- > tools/perf/builtin-ftrace.c | 17 ++++++++++++++--- > 1 file changed, 14 insertions(+), 3 deletions(-) > > diff --git a/tools/perf/builtin-ftrace.c b/tools/perf/builtin-ftrace.c > index a93fbdac6aa4..64c22f367ba2 100644 > --- a/tools/perf/builtin-ftrace.c > +++ b/tools/perf/builtin-ftrace.c > @@ -48,6 +48,7 @@ struct perf_ftrace { > unsigned tracing_thresh; > bool trace_children; > unsigned buffer_size_kb; > + bool no_pager; > }; > > struct filter_entry { > @@ -56,6 +57,7 @@ struct filter_entry { > }; > > static volatile int workload_exec_errno; > +static bool interrupted; > static bool done; > > static void sig_handler(int sig __maybe_unused) > @@ -63,6 +65,12 @@ static void sig_handler(int sig __maybe_unused) > done = true; > } > > +static void sig_handler_int(int sig __maybe_unused) > +{ > + sig_handler(sig); > + interrupted = 1; > +} > + > /* > * perf_evlist__prepare_workload will send a SIGUSR1 if the fork fails, since > * we asked by setting its exec_error to the function below, > @@ -492,7 +500,7 @@ static int __cmd_ftrace(struct perf_ftrace *ftrace, int argc, const char **argv) > return -1; > } > > - signal(SIGINT, sig_handler); > + signal(SIGINT, sig_handler_int); > signal(SIGUSR1, sig_handler); > signal(SIGCHLD, sig_handler); > signal(SIGPIPE, sig_handler); > @@ -585,7 +593,8 @@ static int __cmd_ftrace(struct perf_ftrace *ftrace, int argc, const char **argv) > goto out_reset; > } > > - setup_pager(); > + if (!ftrace->no_pager) > + setup_pager(); > > trace_file = get_tracing_file("trace_pipe"); > if (!trace_file) { > @@ -636,7 +645,7 @@ static int __cmd_ftrace(struct perf_ftrace *ftrace, int argc, const char **argv) > } > > /* read remaining buffer contents */ > - while (true) { > + while (true && !interrupted) { > int n = read(trace_fd, buf, sizeof(buf)); > if (n <= 0) > break; > @@ -731,6 +740,8 @@ int cmd_ftrace(int argc, const char **argv) > "Trace children processes"), > OPT_UINTEGER('b', "buffer-size", &ftrace.buffer_size_kb, > "size of per cpu buffer in kb"), > + OPT_BOOLEAN('P', "no-pager", &ftrace.no_pager, > + "Do not use pager"), > OPT_END() > }; > > -- > 2.25.1 > -- - Arnaldo