From d0af66c2d76056b173294fc81cdfc47305e4e2a7 Mon Sep 17 00:00:00 2001 From: Christian Krinitsin Date: Fri, 6 Jun 2025 09:15:28 +0000 Subject: add new results --- results/classifier/111/debug/1879587 | 129 +++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 results/classifier/111/debug/1879587 (limited to 'results/classifier/111/debug/1879587') diff --git a/results/classifier/111/debug/1879587 b/results/classifier/111/debug/1879587 new file mode 100644 index 00000000..d6b92283 --- /dev/null +++ b/results/classifier/111/debug/1879587 @@ -0,0 +1,129 @@ +debug: 0.106 +permissions: 0.093 +semantic: 0.090 +device: 0.085 +other: 0.082 +PID: 0.082 +socket: 0.080 +graphic: 0.073 +performance: 0.068 +vnc: 0.055 +boot: 0.054 +files: 0.053 +network: 0.044 +KVM: 0.035 +debug: 0.687 +semantic: 0.057 +PID: 0.035 +vnc: 0.033 +files: 0.033 +other: 0.032 +device: 0.023 +socket: 0.019 +boot: 0.019 +performance: 0.018 +KVM: 0.013 +permissions: 0.013 +network: 0.010 +graphic: 0.009 + +Register number in ESR is incorrect for certain banked registers when switching from AA32 to AA64 + +I am running into a situation where I have: +- A hypervisor running in EL2, AA64 +- A guest running in EL1, AA32 + +We trap certain accesses to special registers such as DACR (via HCR.TVM). One instruction that is trapped is: + +ee03ef10 -> mcr 15, 0, lr, cr3, cr0, {0} + +The guest is running in SVC mode. So, LR should refer to LR_svc there. LR_svc is mapped to X18 in AA64. So, ESR should reflect that. However, the actual ESR value is: 0xfe00dc0 + +If we decode the 'rt': +>>> (0xfe00dc0 >> 5) & 0x1f +14 + +My understanding is that 14 is incorrect in the context of AA64. rt should be set to 18. The current mode being SVC, LR refers to LR_svc not LR_usr. In other words, the mapping between registers in AA64 and AA32 doesn't seem to be accounted for. I've tested this with Qemu 5.0.0 + +Let me know if that makes sense and if you would like more info. I am also happy to test patches. +Thanks for all the great work on Qemu! + +This is with qemu-system-aarch64 - forgot to mention it explicitly. So, it will only affect qemu for ARM 64-bit. + +Thanks for the bug report; I think this patch should fix it: + +https://