On Sun, Mar 13, 2022 at 12:12 PM Ralf Ramsauer
<ralf.ramsa...@oth-regensburg.de> wrote:
>
> Hi,
>
> I'm trying to run Linux/QEMU+KVM inside an emulated
> qemu-system-riscv64 VM (x86 host). On latest&greatest QEMU (1416688c53),
> I run Linux inside QEMU. On host side:
>
> qemu-system-riscv64 -nographic \
>          -machine virt \
>          -cpu 'rv64,h=true' \
>          -smp 8 -m 8G \
>          -bios $latest_opensbi \
>          -kernel $latest_upstream_linux \
>         […snip…]
>
> Inside that machine, I boot Linux with KVM enabled:
>
> […]
> [    0.228939] kvm [1]: hypervisor extension available
> [    0.229000] kvm [1]: using Sv48x4 G-stage page table format
> [    0.229033] kvm [1]: VMID 14 bits available
> […]
>
> KVM seems to load correctly. Inside that machine, I compiled QEMU from
> the same sources with the KVM accelerator enabled. When I try to start
> QEMU with KVM enabled, I get
>
> ./qemu-system-riscv64 -nographic \
>         -monitor none \
>         -machine virt \
>         -smp 1 -m 1G \
>         -bios ./pc-bios/opensbi-riscv64-generic-fw_dynamic.bin \
>         -serial stdio \
>         -enable-kvm
>
> [ 4860.559194] kvm [9942]: VCPU exit error -95
> [ 4860.584262] kvm [9942]: SEPC=0x0 SSTATUS=0x200004120 HSTATUS=0x2002001c0
> [ 4860.586839] kvm [9942]: SCAUSE=0x14 STVAL=0x0 HTVAL=0x0 HTINST=0x0
>
> on the ringbuffer, together with a register dump of qemu [1] on the
> console. Needless to say, but without -enable-kvm, it works fine.
>
> As far as I see that, SCAUSE=0x14 reports a 'Instruction Guest PF',
> which would be kind of correct, if the guest's PC really tries to
> execute at phys 0x0. DRAM of the 'virt' machine definition should start
> at 0x80000000, where OpenSBI resides. So I wonder if an erroneous reset
> PC might be the culprit…
>
> Before digging deeper into that issue, I wanted to ask if Qemu/KVM
> inside an emulated riscv64+H-extension is actually supported, or if this
> is a known bug and has some ongoing work.

RISC-V KVM should work. I haven't had a chance to try it myself though.

I have CCed two people who hopefully can help.

Alistair

>
> Thanks
>    Ralf
>
> [1]
>
>   pc       0000000000000000
>   mhartid  0000000000000000
>   mstatus  0000000200000000
>   mip      0000000000000000
>   mie      0000000000000000
>   mideleg  0000000000000000
>   medeleg  0000000000000000
>   mtvec    0000000000000000
>   stvec    0000000000000000
>   mepc     0000000000000000
>   sepc     0000000000000000
>   mcause   0000000000000000
>   scause   0000000000000000
>   mtval    0000000000000000
>   stval    0000000000000000
>   mscratch 0000000000000000
>   sscratch 0000000000000000
>   satp     0000000000000000
>   x0/zero  0000000000000000 x1/ra    0000000000000000 x2/sp
> 0000000000000000 x3/gp    0000000000000000
>   x4/tp    0000000000000000 x5/t0    0000000000000000 x6/t1
> 0000000000000000 x7/t2    0000000000000000
>   x8/s0    0000000000000000 x9/s1    0000000000000000 x10/a0
> 0000000000000000 x11/a1   00000000bf000000
>   x12/a2   0000000000000000 x13/a3   0000000000000000 x14/a4
> 0000000000000000 x15/a5   0000000000000000
>   x16/a6   0000000000000000 x17/a7   0000000000000000 x18/s2
> 0000000000000000 x19/s3   0000000000000000
>   x20/s4   0000000000000000 x21/s5   0000000000000000 x22/s6
> 0000000000000000 x23/s7   0000000000000000
>   x24/s8   0000000000000000 x25/s9   0000000000000000 x26/s10
> 0000000000000000 x27/s11  0000000000000000
>   x28/t3   0000000000000000 x29/t4   0000000000000000 x30/t5
> 0000000000000000 x31/t6   0000000000000000
>

Reply via email to