From: Jiri Olsa <jolsa@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: lkml <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
David Ahern <dsahern@gmail.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: [PATCH 2/4] perf ui progress: Fix progress update
Date: Fri, 8 Sep 2017 14:05:08 +0200 [thread overview]
Message-ID: <20170908120510.22515-3-jolsa@kernel.org> (raw)
In-Reply-To: <20170908120510.22515-1-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.
Link: http://lkml.kernel.org/n/tip-4xtvcl0ykeg3ndg2gg46kvyn@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
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.9.5
next prev parent reply other threads:[~2017-09-08 12:05 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-08 12:05 [RFC 1/4] perf ui progress: Add size info into progress bar Jiri Olsa
2017-09-08 12:05 ` [PATCH 1/4] perf ui progress: Make sure we always define step value Jiri Olsa
2017-09-08 13:16 ` Milian Wolff
2017-09-08 13:26 ` Arnaldo Carvalho de Melo
2017-09-09 10:09 ` Milian Wolff
2017-09-13 7:44 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
2017-09-08 12:05 ` Jiri Olsa [this message]
2017-09-13 7:45 ` [tip:perf/urgent] perf ui progress: Fix progress update tip-bot for Jiri Olsa
2017-09-08 12:05 ` [PATCH 3/4] perf ui progress: Add ui specific init function Jiri Olsa
2017-09-22 16:34 ` [tip:perf/core] " tip-bot for Jiri Olsa
2017-09-08 12:05 ` [PATCH 4/4] perf ui progress: Add size info into progress bar Jiri Olsa
2017-09-22 16:35 ` [tip:perf/core] " tip-bot for Jiri Olsa
2017-09-08 13:45 ` [RFC 1/4] " Arnaldo Carvalho de Melo
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=20170908120510.22515-3-jolsa@kernel.org \
--to=jolsa@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=dsahern@gmail.com \
--cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox