]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
KVM: make halt_poll_ns per-vCPU
authorWanpeng Li <wanpeng.li@hotmail.com>
Thu, 3 Sep 2015 14:07:37 +0000 (22:07 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Sun, 6 Sep 2015 14:27:10 +0000 (16:27 +0200)
Change halt_poll_ns into per-VCPU variable, seeded from module parameter,
to allow greater flexibility.

Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
include/linux/kvm_host.h
virt/kvm/kvm_main.c

index 81089cf1f0c11c025b6f448d20ddcc1117ab5367..1bef9e21e7259935d2d7e8755bbd4c5710f5a9a6 100644 (file)
@@ -242,6 +242,7 @@ struct kvm_vcpu {
        int sigset_active;
        sigset_t sigset;
        struct kvm_vcpu_stat stat;
+       unsigned int halt_poll_ns;
 
 #ifdef CONFIG_HAS_IOMEM
        int mmio_needed;
index d8db2f8fce9c7ab727fb5dfa957d5f7ba828fa42..c06e57cd12696b4617c737bff990389dcf573753 100644 (file)
@@ -217,6 +217,7 @@ int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct kvm *kvm, unsigned id)
        vcpu->kvm = kvm;
        vcpu->vcpu_id = id;
        vcpu->pid = NULL;
+       vcpu->halt_poll_ns = 0;
        init_waitqueue_head(&vcpu->wq);
        kvm_async_pf_vcpu_init(vcpu);
 
@@ -1930,8 +1931,8 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu)
        bool waited = false;
 
        start = cur = ktime_get();
-       if (halt_poll_ns) {
-               ktime_t stop = ktime_add_ns(ktime_get(), halt_poll_ns);
+       if (vcpu->halt_poll_ns) {
+               ktime_t stop = ktime_add_ns(ktime_get(), vcpu->halt_poll_ns);
 
                do {
                        /*