* [Qemu-devel] [PATCH qemu] profiler: Reenable built-in profiler
@ 2015-03-16 3:57 Alexey Kardashevskiy
2015-03-17 19:29 ` Paolo Bonzini
0 siblings, 1 reply; 2+ messages in thread
From: Alexey Kardashevskiy @ 2015-03-16 3:57 UTC (permalink / raw)
To: qemu-devel
Cc: Alexey Kardashevskiy, Paolo Bonzini, Alexander Graf,
Peter Maydell
2ed1ebcf6 "timer: replace time() with QEMU_CLOCK_HOST" broke compile
when configured with --enable-profiler. Turned out the profiler has been
broken for a while.
This does s/qemu_time/tcg_time/ as the profiler only works in a TCG mode.
This also fixes the compile error.
This changes profile_getclock() to return nanoseconds rather than
CPU ticks as the "profile" HMP command prints seconds and there is no
platform-independent way to get ticks-per-second rate.
Since TCG is quite slow and get_clock() returns nanoseconds (fine
enough), this should not affect precision much.
This removes unused qemu_time_start and tlb_flush_time.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
On 03/10/2015 10:54 PM, Paolo Bonzini wrote:>
> s/qemu_time/tcg_time/, but if Peter is not using it and Fabrice broke
> it, might as well remove it.
>
> Paolo
Which Peter did you mean here, Paolo?
---
cpus.c | 2 +-
include/qemu/timer.h | 5 ++---
monitor.c | 6 +++---
3 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/cpus.c b/cpus.c
index 1ce90a1..314df16 100644
--- a/cpus.c
+++ b/cpus.c
@@ -1353,7 +1353,7 @@ static int tcg_cpu_exec(CPUArchState *env)
}
ret = cpu_exec(env);
#ifdef CONFIG_PROFILER
- qemu_time += profile_getclock() - ti;
+ tcg_time += profile_getclock() - ti;
#endif
if (use_icount) {
/* Fold pending instructions back into the
diff --git a/include/qemu/timer.h b/include/qemu/timer.h
index eba8b21..e5bd494 100644
--- a/include/qemu/timer.h
+++ b/include/qemu/timer.h
@@ -999,11 +999,10 @@ static inline int64_t cpu_get_real_ticks (void)
#ifdef CONFIG_PROFILER
static inline int64_t profile_getclock(void)
{
- return cpu_get_real_ticks();
+ return get_clock();
}
-extern int64_t qemu_time, qemu_time_start;
-extern int64_t tlb_flush_time;
+extern int64_t tcg_time;
extern int64_t dev_time;
#endif
diff --git a/monitor.c b/monitor.c
index c86a89e..4e67774 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1974,7 +1974,7 @@ static void hmp_info_numa(Monitor *mon, const QDict *qdict)
#ifdef CONFIG_PROFILER
-int64_t qemu_time;
+int64_t tcg_time;
int64_t dev_time;
static void hmp_info_profile(Monitor *mon, const QDict *qdict)
@@ -1982,8 +1982,8 @@ static void hmp_info_profile(Monitor *mon, const QDict *qdict)
monitor_printf(mon, "async time %" PRId64 " (%0.3f)\n",
dev_time, dev_time / (double)get_ticks_per_sec());
monitor_printf(mon, "qemu time %" PRId64 " (%0.3f)\n",
- qemu_time, qemu_time / (double)get_ticks_per_sec());
- qemu_time = 0;
+ tcg_time, tcg_time / (double)get_ticks_per_sec());
+ tcg_time = 0;
dev_time = 0;
}
#else
--
2.0.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH qemu] profiler: Reenable built-in profiler
2015-03-16 3:57 [Qemu-devel] [PATCH qemu] profiler: Reenable built-in profiler Alexey Kardashevskiy
@ 2015-03-17 19:29 ` Paolo Bonzini
0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2015-03-17 19:29 UTC (permalink / raw)
To: Alexey Kardashevskiy, qemu-devel; +Cc: Peter Maydell, Alexander Graf
On 16/03/2015 04:57, Alexey Kardashevskiy wrote:
> 2ed1ebcf6 "timer: replace time() with QEMU_CLOCK_HOST" broke compile
> when configured with --enable-profiler. Turned out the profiler has been
> broken for a while.
>
> This does s/qemu_time/tcg_time/ as the profiler only works in a TCG mode.
> This also fixes the compile error.
>
> This changes profile_getclock() to return nanoseconds rather than
> CPU ticks as the "profile" HMP command prints seconds and there is no
> platform-independent way to get ticks-per-second rate.
> Since TCG is quite slow and get_clock() returns nanoseconds (fine
> enough), this should not affect precision much.
>
> This removes unused qemu_time_start and tlb_flush_time.
>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Thanks, applied.
Paolo
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-03-17 19:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-16 3:57 [Qemu-devel] [PATCH qemu] profiler: Reenable built-in profiler Alexey Kardashevskiy
2015-03-17 19:29 ` Paolo Bonzini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).