diff options
Diffstat (limited to 'results/classifier/zero-shot/118/KVM/735')
| -rw-r--r-- | results/classifier/zero-shot/118/KVM/735 | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/results/classifier/zero-shot/118/KVM/735 b/results/classifier/zero-shot/118/KVM/735 new file mode 100644 index 00000000..1d721abd --- /dev/null +++ b/results/classifier/zero-shot/118/KVM/735 @@ -0,0 +1,56 @@ +KVM: 0.962 +mistranslation: 0.953 +graphic: 0.944 +virtual: 0.917 +debug: 0.908 +kernel: 0.841 +VMM: 0.739 +device: 0.737 +performance: 0.732 +ppc: 0.657 +TCG: 0.640 +x86: 0.636 +vnc: 0.631 +register: 0.628 +risc-v: 0.623 +architecture: 0.613 +hypervisor: 0.611 +PID: 0.515 +user-level: 0.503 +semantic: 0.495 +network: 0.489 +socket: 0.483 +files: 0.456 +permissions: 0.438 +peripherals: 0.403 +i386: 0.390 +arm: 0.384 +boot: 0.329 +assembly: 0.250 + +softmmu 'at' not behaving +Description of problem: +This looks like a bug to me, please correct if I'm wrong. The execution context is EL2 here and we run KVM vms on top of the system emulation. Anyway, here we have stopped in the EL2 and want to translate a virtual address '0' with 'at'. While the '0' itself is not mapped, something in the first gigabyte is, and the softmmu refuses to walk to it: + +0x0000000100004a3c <at_s12e1r+8>: 80 78 0c d5 at s12e1r, x0 +0x0000000100004a40 <at_s12e1r+12>: 01 74 38 d5 mrs x1, par_el1 + +(gdb) info registers x0 x1 +x0 0x0 0 +x1 0x809 2057 + +So that would be translation fault level 0, stage 1 if I'm not mistaken. + +(gdb) info all-registers TCR_EL1 VTCR_EL2 TTBR1_EL1 +TCR_EL1 0x400035b5503510 18014629184681232 +VTCR_EL2 0x623590 6436240 +TTBR1_EL1 0x304000041731001 217298683118686209 + +(gdb) p print_table(0x41731000) +000:0x000000ffff9803 256:0x000000fffff803 507:0x00000041fbc803 +508:0x000000ff9ef803 + +The first gigabyte is populated, yet the 'at' knows nothing about it. Did I miss something? This seems to be working fine on the hardware. +Steps to reproduce: +1. Stop in the EL2 while the linux is running (GDB) +2. Use something along the lines of this function to translate any kernel virtual address: https://github.com/jkrh/kvms/blob/4c26c786be9971613b3b7f56121c1a1aa3b9585a/core/helpers.h#L74 |