diff options
author | Feng Wu <feng.wu@intel.com> | 2015-09-18 10:29:55 -0400 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-10-01 09:06:53 -0400 |
commit | bf9f6ac8d74969690df1485b33b7c238ca9f2269 (patch) | |
tree | cfaa21f2831d959dca9bdb4c4ad9e329fec4d5e8 /virt | |
parent | 28b835d60fcc2498e717cf5e6f0c3691c24546f7 (diff) |
KVM: Update Posted-Interrupts Descriptor when vCPU is blocked
This patch updates the Posted-Interrupts Descriptor when vCPU
is blocked.
pre-block:
- Add the vCPU to the blocked per-CPU list
- Set 'NV' to POSTED_INTR_WAKEUP_VECTOR
post-block:
- Remove the vCPU from the per-CPU list
Signed-off-by: Feng Wu <feng.wu@intel.com>
[Concentrate invocation of pre/post-block hooks to vcpu_block. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'virt')
-rw-r--r-- | virt/kvm/kvm_main.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index afd7ae6aec65..a75502c93c3e 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c | |||
@@ -230,6 +230,9 @@ int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct kvm *kvm, unsigned id) | |||
230 | init_waitqueue_head(&vcpu->wq); | 230 | init_waitqueue_head(&vcpu->wq); |
231 | kvm_async_pf_vcpu_init(vcpu); | 231 | kvm_async_pf_vcpu_init(vcpu); |
232 | 232 | ||
233 | vcpu->pre_pcpu = -1; | ||
234 | INIT_LIST_HEAD(&vcpu->blocked_vcpu_list); | ||
235 | |||
233 | page = alloc_page(GFP_KERNEL | __GFP_ZERO); | 236 | page = alloc_page(GFP_KERNEL | __GFP_ZERO); |
234 | if (!page) { | 237 | if (!page) { |
235 | r = -ENOMEM; | 238 | r = -ENOMEM; |