aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <philmd@linaro.org>2025-07-08 14:09:29 +0200
committerPhilippe Mathieu-Daudé <philmd@linaro.org>2025-07-15 19:34:33 +0200
commit2320453031f87e4245a5625f3714d444e987ea0c (patch)
tree68c22c202aa653446875dcf1c1503b8fa5413d79
parentc10eb740108c24c65f049e5ae85ed10b2779e75d (diff)
downloadqemu-2320453031f87e4245a5625f3714d444e987ea0c.zip
qemu-2320453031f87e4245a5625f3714d444e987ea0c.tar.gz
qemu-2320453031f87e4245a5625f3714d444e987ea0c.tar.bz2
accel/tcg: Propagate AccelState to dump_accel_info()
Declare tcg_dump_stats() in "tcg/tcg.h" so it can be used out of accel/tcg/, like by {bsd,linux}-user. Next commit will register the TCG AccelClass::get_stats handler, which expects a AccelState, so propagate it to dump_accel_info(). Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20250715140048.84942-6-philmd@linaro.org>
-rw-r--r--accel/tcg/internal-common.h2
-rw-r--r--accel/tcg/monitor.c1
-rw-r--r--accel/tcg/tcg-stats.c5
-rw-r--r--include/tcg/tcg.h2
4 files changed, 5 insertions, 5 deletions
diff --git a/accel/tcg/internal-common.h b/accel/tcg/internal-common.h
index 77a3a06..1dbc45d 100644
--- a/accel/tcg/internal-common.h
+++ b/accel/tcg/internal-common.h
@@ -139,6 +139,4 @@ G_NORETURN void cpu_io_recompile(CPUState *cpu, uintptr_t retaddr);
void tb_phys_invalidate(TranslationBlock *tb, tb_page_addr_t page_addr);
void tb_set_jmp_target(TranslationBlock *tb, int n, uintptr_t addr);
-void tcg_dump_stats(GString *buf);
-
#endif
diff --git a/accel/tcg/monitor.c b/accel/tcg/monitor.c
index adb9de5..be5c195 100644
--- a/accel/tcg/monitor.c
+++ b/accel/tcg/monitor.c
@@ -12,6 +12,7 @@
#include "qapi/qapi-commands-machine.h"
#include "monitor/monitor.h"
#include "system/tcg.h"
+#include "tcg/tcg.h"
#include "internal-common.h"
HumanReadableText *qmp_x_query_jit(Error **errp)
diff --git a/accel/tcg/tcg-stats.c b/accel/tcg/tcg-stats.c
index eb6e20a..e1a1c4c 100644
--- a/accel/tcg/tcg-stats.c
+++ b/accel/tcg/tcg-stats.c
@@ -37,9 +37,8 @@ static void dump_drift_info(GString *buf)
}
}
-static void dump_accel_info(GString *buf)
+static void dump_accel_info(AccelState *accel, GString *buf)
{
- AccelState *accel = current_accel();
bool one_insn_per_tb = object_property_get_bool(OBJECT(accel),
"one-insn-per-tb",
&error_fatal);
@@ -209,7 +208,7 @@ static void dump_exec_info(GString *buf)
void tcg_dump_stats(GString *buf)
{
- dump_accel_info(buf);
+ dump_accel_info(current_accel(), buf);
dump_exec_info(buf);
dump_drift_info(buf);
}
diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h
index 0c2a319..a6d9aa5 100644
--- a/include/tcg/tcg.h
+++ b/include/tcg/tcg.h
@@ -1005,5 +1005,7 @@ static inline const TCGOpcode *tcg_swap_vecop_list(const TCGOpcode *n)
bool tcg_can_emit_vecop_list(const TCGOpcode *, TCGType, unsigned);
void tcg_dump_ops(TCGContext *s, FILE *f, bool have_prefs);
+/* tcg_dump_stats: Append TCG statistics to @buf */
+void tcg_dump_stats(GString *buf);
#endif /* TCG_H */