Re: [PATCH/RFC] KVM: halt_polling: provide a way to qualify wakeups during poll

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/03/2016 07:42 AM, Wanpeng Li wrote:
> 2016-05-02 18:42 GMT+08:00 Christian Borntraeger <borntraeger@xxxxxxxxxx>:
> [...]
>> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
>> index 9102ae1..d63ea60 100644
>> --- a/virt/kvm/kvm_main.c
>> +++ b/virt/kvm/kvm_main.c
>> @@ -2008,7 +2008,8 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu)
>>                          * arrives.
>>                          */
>>                         if (kvm_vcpu_check_block(vcpu) < 0) {
>> -                               ++vcpu->stat.halt_successful_poll;
>> +                               if (vcpu_valid_wakeup(vcpu))
>> +                                       ++vcpu->stat.halt_successful_poll;
>>                                 goto out;
>>                         }
>>                         cur = ktime_get();
>> @@ -2038,14 +2039,16 @@ out:
>>                 if (block_ns <= vcpu->halt_poll_ns)
>>                         ;
>>                 /* we had a long block, shrink polling */
>> -               else if (vcpu->halt_poll_ns && block_ns > halt_poll_ns)
>> +               else if (!vcpu_valid_wakeup(vcpu) ||
>> +                       (vcpu->halt_poll_ns && block_ns > halt_poll_ns))
>>                         shrink_halt_poll_ns(vcpu);
>>                 /* we had a short halt and our poll time is too small */
>>                 else if (vcpu->halt_poll_ns < halt_poll_ns &&
>> -                       block_ns < halt_poll_ns)
>> +                       block_ns < halt_poll_ns && vcpu_valid_wakeup(vcpu))
>>                         grow_halt_poll_ns(vcpu);
>>         } else
>>                 vcpu->halt_poll_ns = 0;
>> +       vcpu_reset_wakeup(vcpu);
> 
> Why mark the next wakeup as a non-sucessful poll?

It is basically only used for s390 and used as a mean to implement the "default off,
only on for selected cases". But yes, if somebody else wants to use it this might 
need to be changed.
So what about changing this into
kvm_arch_vcpu_block_finish(vcpu)
which is a reset on s390 and a no for others?

Christian

--
To unsubscribe from this list: send the line "unsubscribe linux-s390" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Kernel Development]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Info]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Linux Media]     [Device Mapper]

  Powered by Linux