[PATCH 0/3] target/riscv/kvm: reset time changes

Daniel Henrique Barboza posted 3 patches 2 days, 6 hours ago
There is a newer version of this series
target/riscv/cpu.c         |  9 +++++----
target/riscv/kvm/kvm-cpu.c | 15 ++++++++++-----
2 files changed, 15 insertions(+), 9 deletions(-)
[PATCH 0/3] target/riscv/kvm: reset time changes
Posted by Daniel Henrique Barboza 2 days, 6 hours ago
Hi,

These patches were done in the context of gitlab #2573 [1]. The gitlab
entry per se will probably be closed as a guest software bug, but while
working on it I noticed that we're writing a TCG-initialized
env->mstatus in KVM.

This is happening because riscv_cpu_reset_hold() is doing all TCG
related initialization first, and then calling kvm_riscv_reset_vcpu() in
the end. For example, we're writing '0xa0000000' in 'sstatus' because
TCG is setting env->mstatus = 0xa0000000.

First patch separates KVM vcpu initialization from TCG, centering all
KVM reset procedure into kvm_riscv_reset_vcpu(). Patches 2 and 3 are
small improvements made around get/put KVM csr regs. 

[1] https://gitlab.com/qemu-project/qemu/-/issues/2573

Daniel Henrique Barboza (3):
  target/riscv/cpu: ignore TCG init for KVM CPUs in reset_hold
  target/riscv/kvm: use env->sie to read/write 'sie' CSR
  target/riscv/kvm: reset all available KVM CSRs in kvm_reset()

 target/riscv/cpu.c         |  9 +++++----
 target/riscv/kvm/kvm-cpu.c | 15 ++++++++++-----
 2 files changed, 15 insertions(+), 9 deletions(-)

-- 
2.48.1