mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-02 10:12:03 +00:00
profiler: Reenable built-in profiler
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> Message-Id: <1426478258-29961-1-git-send-email-aik@ozlabs.ru> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
b680c5ba54
commit
89d5cbddee
2
cpus.c
2
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
|
||||
|
@ -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
|
||||
|
||||
|
@ -1975,7 +1975,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)
|
||||
@ -1983,8 +1983,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
|
||||
|
Loading…
x
Reference in New Issue
Block a user