On Tue, Jul 30, 2019 at 2:55 PM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > On 29/07/19 13:56, Anup Patel wrote: > > +void kvm_riscv_halt_guest(struct kvm *kvm) > > +{ > > + int i; > > + struct kvm_vcpu *vcpu; > > + > > + kvm_for_each_vcpu(i, vcpu, kvm) > > + vcpu->arch.pause = true; > > + kvm_make_all_cpus_request(kvm, KVM_REQ_SLEEP); > > +} > > + > > +void kvm_riscv_resume_guest(struct kvm *kvm) > > +{ > > + int i; > > + struct kvm_vcpu *vcpu; > > + > > + kvm_for_each_vcpu(i, vcpu, kvm) { > > + vcpu->arch.pause = false; > > + swake_up_one(kvm_arch_vcpu_wq(vcpu)); > > + } > > Are these unused? (Perhaps I'm just blind :)) Not used as of now. The intention was to have APIs for freezing/unfreezing Guest which can be used to do some work which is atomic from Guest perspective. I will remove it and add it back when required. Regards, Anup