From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759122AbeAIPhZ (ORCPT + 1 other); Tue, 9 Jan 2018 10:37:25 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35588 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933128AbeAIPhT (ORCPT ); Tue, 9 Jan 2018 10:37:19 -0500 From: Jiri Olsa To: Arnaldo Carvalho de Melo Cc: lkml , Ingo Molnar , Namhyung Kim , David Ahern , Andi Kleen , Alexander Shishkin , Peter Zijlstra Subject: [PATCH 34/49] perf ui progress: Fix index progress display Date: Tue, 9 Jan 2018 16:35:07 +0100 Message-Id: <20180109153522.14116-35-jolsa@kernel.org> In-Reply-To: <20180109153522.14116-1-jolsa@kernel.org> References: <20180109153522.14116-1-jolsa@kernel.org> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Tue, 09 Jan 2018 15:37:19 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: Display overall index files progress size instead of having multiple (per index) progress bars. Link: http://lkml.kernel.org/n/tip-b1alb4i6urd623bcbdqni8xp@git.kernel.org Signed-off-by: Jiri Olsa --- tools/perf/util/session.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index 3c4dba27006f..f9dab2e16ffa 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -1797,6 +1797,8 @@ fetch_mmaped_event(struct perf_session *session, } struct process_args { + struct ui_progress prog; + u64 data_offset; u64 data_size; u64 file_size; @@ -1826,7 +1828,6 @@ static int __perf_session__process_events(struct perf_session *session, size_t mmap_size; char *buf, *mmaps[NUM_MMAPS]; union perf_event *event; - struct ui_progress prog; s64 skip; perf_tool__fill_defaults(tool); @@ -1841,8 +1842,6 @@ static int __perf_session__process_events(struct perf_session *session, if (args->data_offset + args->data_size < file_size) file_size = args->data_offset + args->data_size; - ui_progress__init_size(&prog, file_size, "Processing events..."); - mmap_size = MMAP_SIZE; if (mmap_size > file_size) { mmap_size = file_size; @@ -1907,7 +1906,7 @@ static int __perf_session__process_events(struct perf_session *session, head += size; file_pos += size; - ui_progress__update(&prog, size); + ui_progress__update(&args->prog, size); if (session_done()) goto out; @@ -1936,12 +1935,29 @@ static int __perf_session__process_events(struct perf_session *session, return err; } +static u64 get_index_size(struct perf_session *session) +{ + u64 size = 0; + int i; + + for (i = 0; i < (int)session->header.nr_index; i++) { + struct perf_file_section *idx = &session->header.index[i]; + + size += idx->size; + } + + return size; +} + static int __perf_session__process_indexed_events(struct perf_session *session) { struct process_args args; struct perf_tool *tool = session->tool; int err = 0, i; + ui_progress__init_size(&args.prog, get_index_size(session), + "Processing events"); + for (i = 0; i < (int)session->header.nr_index; i++) { struct perf_file_section *idx = &session->header.index[i]; @@ -1982,6 +1998,9 @@ int perf_session__process_events(struct perf_session *session) args.data_size = session->header.data_size; args.file_size = perf_data__size(data); + ui_progress__init_size(&args.prog, args.file_size, + "Processing events"); + err = __perf_session__process_events(session, &args); if (!tool->no_warn) -- 2.13.6