summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2012-08-12 11:29:09 +0200
committerAlexander Graf <agraf@suse.de>2012-10-05 23:38:43 +0200
commit706fb730cb4f9db2e3de33391475dd0616c2c935 (patch)
tree51c0933278e3c07fdc81df5ee7bf554edf7e73d0 /arch
parentc63ddcb4540db95e5a4223cfa8cdbe6efbd5e386 (diff)
KVM: PPC: Exit guest context while handling exit
The x86 implementation of KVM accounts for host time while processing guest exits. Do the same for us. Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/kvm/book3s_pr.c2
-rw-r--r--arch/powerpc/kvm/booke.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index 2c268a15b20f..b4ae11ec068f 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -601,6 +601,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
__hard_irq_enable();
trace_kvm_exit(exit_nr, vcpu);
+ kvm_guest_exit();
preempt_enable();
switch (exit_nr) {
@@ -872,6 +873,7 @@ program_interrupt:
}
}
+ kvm_guest_enter();
trace_kvm_book3s_reenter(r, vcpu);
return r;
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 492c343f598e..887c7cc02146 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -650,6 +650,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
local_irq_enable();
trace_kvm_exit(exit_nr, vcpu);
+ kvm_guest_exit();
run->exit_reason = KVM_EXIT_UNKNOWN;
run->ready_for_interrupt_injection = 1;
@@ -952,6 +953,8 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
}
}
+ kvm_guest_enter();
+
return r;
}