All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Jiri Olsa <jolsa@kernel.org>, David Ahern <dsahern@gmail.com>,
	Namhyung Kim <namhyung@kernel.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 6/9] perf ui progress: Fix progress update
Date: Tue, 12 Sep 2017 16:24:35 -0300	[thread overview]
Message-ID: <20170912192438.1334-7-acme@kernel.org> (raw)
In-Reply-To: <20170912192438.1334-1-acme@kernel.org>

From: Jiri Olsa <jolsa@kernel.org>

We currently update the 'next' variable only with a single step value.
But it's possible the 'adv' update is bigger than single 'step' value.
This would leave 'next' value under counted and force unnecessary
ui_progress__ops->update calls.

Calculate the amount of steps we need for 'adv' update and increase the
'next' with that amounts of steps.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20170908120510.22515-3-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/ui/progress.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tools/perf/ui/progress.c b/tools/perf/ui/progress.c
index a9c15804b1f6..ae91c8148edf 100644
--- a/tools/perf/ui/progress.c
+++ b/tools/perf/ui/progress.c
@@ -1,3 +1,4 @@
+#include <linux/kernel.h>
 #include "../cache.h"
 #include "progress.h"
 
@@ -14,10 +15,14 @@ struct ui_progress_ops *ui_progress__ops = &null_progress__ops;
 
 void ui_progress__update(struct ui_progress *p, u64 adv)
 {
+	u64 last = p->curr;
+
 	p->curr += adv;
 
 	if (p->curr >= p->next) {
-		p->next += p->step;
+		u64 nr = DIV_ROUND_UP(p->curr - last, p->step);
+
+		p->next += nr * p->step;
 		ui_progress__ops->update(p);
 	}
 }
-- 
2.13.5

  parent reply	other threads:[~2017-09-12 19:25 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 1/9] tools include linux: Guard against redefinition of some macros Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 2/9] perf tests: Fix compile when libunwind's unwind.h is available Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 3/9] tools lib api: Fix make DEBUG=1 build Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 4/9] perf tools: Open perf.data with O_CLOEXEC flag Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 5/9] perf ui progress: Make sure we always define step value Arnaldo Carvalho de Melo
2017-09-12 19:24 ` Arnaldo Carvalho de Melo [this message]
2017-09-12 19:24 ` [PATCH 7/9] perf config: Check not only section->from_system_config but also item's Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 8/9] perf tools: Support running perf binaries with a dash in their name Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 9/9] perf stat: Wait for the correct child Arnaldo Carvalho de Melo
2017-09-13  7:26 ` [GIT PULL 0/9] perf/urgent fixes Ingo Molnar
2017-09-13  7:38 ` [PATCH] tools/include: Sync kernel ABI headers with tooling headers Ingo Molnar
2017-09-29 20:04   ` [tip:perf/urgent] tools include: " tip-bot for Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170912192438.1334-7-acme@kernel.org \
    --to=acme@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=dsahern@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.