On 1/7/25 11:49, Peter Maydell wrote:
On Mon, 23 Jun 2025 at 13:19, Philippe Mathieu-Daudé <phi...@linaro.org> wrote:
Allow distinguishing HV_ILLEGAL_GUEST_STATE in trace events.
Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
---
target/arm/hvf/hvf.c | 10 +++++++++-
target/arm/hvf/trace-events | 1 +
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c
index ef76dcd28de..cc5bbc155d2 100644
--- a/target/arm/hvf/hvf.c
+++ b/target/arm/hvf/hvf.c
@@ -1916,7 +1916,15 @@ int hvf_vcpu_exec(CPUState *cpu)
bql_unlock();
r = hv_vcpu_run(cpu->accel->fd);
bql_lock();
- assert_hvf_ok(r);
+ switch (r) {
+ case HV_SUCCESS:
+ break;
+ case HV_ILLEGAL_GUEST_STATE:
+ trace_hvf_illegal_guest_state();
+ /* fall through */
+ default:
+ g_assert_not_reached();
This seems kind of odd.
If it can happen, we shouldn't g_assert_not_reached().
If it can't happen, we shouldn't trace it.
But the hvf code already has a lot of "assert success
rather than handling possible-but-fatal errors more
gracefully", so I guess it's OK.
OK, you can drop this patch: I will replace with error("unrecoverable:
...") && exit(1); to avoid such oddity.