On 29.11.19 12:21, Janosch Frank wrote: > On 11/29/19 11:47 AM, David Hildenbrand wrote: >> On 29.11.19 10:48, Janosch Frank wrote: >>> CPU resets for protected guests need to be done via Ultravisor >>> calls. Hence we need a way to issue these calls for each reset. >>> >>> As we formerly had only one reset function and it was called for >>> initial, as well as for the clear reset, we now need a new interface. >>> >>> Signed-off-by: Janosch Frank <fran...@linux.ibm.com> >>> --- >>> target/s390x/cpu.c | 14 ++++++++++++-- >>> target/s390x/kvm-stub.c | 10 +++++++++- >>> target/s390x/kvm.c | 38 ++++++++++++++++++++++++++++++++------ >>> target/s390x/kvm_s390x.h | 4 +++- >>> 4 files changed, 56 insertions(+), 10 deletions(-) >>> >>> diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c >>> index bd39cb54b7..52fefa1586 100644 >>> --- a/target/s390x/cpu.c >>> +++ b/target/s390x/cpu.c >>> @@ -131,8 +131,18 @@ static void s390_cpu_reset(CPUState *s, cpu_reset_type >>> type) >>> } >>> >>> /* Reset state inside the kernel that we cannot access yet from QEMU. >>> */ >>> - if (kvm_enabled() && type != S390_CPU_RESET_NORMAL) { >>> - kvm_s390_reset_vcpu(cpu); >>> + if (kvm_enabled()) { >>> + switch (type) { >>> + case S390_CPU_RESET_CLEAR: >>> + kvm_s390_reset_vcpu_clear(cpu); >>> + break; >>> + case S390_CPU_RESET_INITIAL: >>> + kvm_s390_reset_vcpu_initial(cpu); >>> + break; >>> + case S390_CPU_RESET_NORMAL: >>> + kvm_s390_reset_vcpu_normal(cpu); >>> + break; >>> + } >> >> I would have assumed you only have to do that for pv? For ordinary >> guests we can avoid unnecessary ioctls IMHO. > > Remember the reset normal IRQ fix in KVM? > Without it we're not architecture compliant.
Please spell that out somewhere. People reviewing this have no idea what's going on under the hood :) -- Thanks, David / dhildenb