plugins/lockstep: clean-up output

We were repeating information which wasn't super clear. As we already
will have dumped the last failing PC just note the divergence and dump
the previous instruction log.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240705084047.857176-27-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2024-07-05 09:40:33 +01:00
parent 13167b5fe9
commit 3b8550c955

View file

@ -135,10 +135,13 @@ static void report_divergance(ExecState *us, ExecState *them)
/* Output short log entry of going out of sync... */ /* Output short log entry of going out of sync... */
if (verbose || divrec.distance == 1 || diverged) { if (verbose || divrec.distance == 1 || diverged) {
g_string_printf(out, g_string_printf(out, "@ "
"@ 0x%016" PRIx64 " vs 0x%016" PRIx64 "0x%016" PRIx64 " (%" PRId64 ") vs "
"0x%016" PRIx64 " (%" PRId64 ")"
" (%d/%d since last)\n", " (%d/%d since last)\n",
us->pc, them->pc, g_slist_length(divergence_log), us->pc, us->insn_count,
them->pc, them->insn_count,
g_slist_length(divergence_log),
divrec.distance); divrec.distance);
qemu_plugin_outs(out->str); qemu_plugin_outs(out->str);
} }
@ -147,10 +150,7 @@ static void report_divergance(ExecState *us, ExecState *them)
int i; int i;
GSList *entry; GSList *entry;
g_string_printf(out, g_string_printf(out, "Δ too high, we have diverged, previous insns\n");
"Δ insn_count @ 0x%016" PRIx64
" (%"PRId64") vs 0x%016" PRIx64 " (%"PRId64")\n",
us->pc, us->insn_count, them->pc, them->insn_count);
for (entry = log, i = 0; for (entry = log, i = 0;
g_slist_next(entry) && i < 5; g_slist_next(entry) && i < 5;
@ -163,7 +163,7 @@ static void report_divergance(ExecState *us, ExecState *them)
prev->insn_count); prev->insn_count);
} }
qemu_plugin_outs(out->str); qemu_plugin_outs(out->str);
qemu_plugin_outs("too much divergence... giving up."); qemu_plugin_outs("giving up\n");
qemu_plugin_uninstall(our_id, plugin_cleanup); qemu_plugin_uninstall(our_id, plugin_cleanup);
} }
} }