Re: [PATCH v2 2/4] KVM: X86: implement the logic for spinlock optimization

2017-08-08 Thread Paolo Bonzini
On 08/08/2017 10:31, Longpeng (Mike) wrote:
> 
> 
> On 2017/8/8 15:30, Paolo Bonzini wrote:
> 
>> On 08/08/2017 06:05, Longpeng(Mike) wrote:
>>> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
>>> index cd0e6e6..dec5e8a 100644
>>> --- a/arch/x86/kvm/hyperv.c
>>> +++ b/arch/x86/kvm/hyperv.c
>>> @@ -1268,7 +1268,7 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu)
>>>  
>>> switch (code) {
>>> case HVCALL_NOTIFY_LONG_SPIN_WAIT:
>>> -   kvm_vcpu_on_spin(vcpu, kvm_arch_vcpu_in_kernel(vcpu));
>>> +   kvm_vcpu_on_spin(vcpu, kvm_x86_ops->spin_in_kernel(vcpu));
>>> break;
>>> case HVCALL_POST_MESSAGE:
>>> case HVCALL_SIGNAL_EVENT:
>>
>> This can be true as well.  I can change this on commit.
> 
> Thanks,
> hope you could help me to fix the same problem in patch-1(s390) too.

Yes.  Another possibility is to always pass false in patch 1 to
kvm_vcpu_on_spin.  Then the parameter can be adjusted in patches 3 and 4
(passing true for s390 and vcpu_mode_priv(vcpu) for ARM).

Paolo


Re: [PATCH v2 2/4] KVM: X86: implement the logic for spinlock optimization

2017-08-08 Thread Paolo Bonzini
On 08/08/2017 10:31, Longpeng (Mike) wrote:
> 
> 
> On 2017/8/8 15:30, Paolo Bonzini wrote:
> 
>> On 08/08/2017 06:05, Longpeng(Mike) wrote:
>>> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
>>> index cd0e6e6..dec5e8a 100644
>>> --- a/arch/x86/kvm/hyperv.c
>>> +++ b/arch/x86/kvm/hyperv.c
>>> @@ -1268,7 +1268,7 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu)
>>>  
>>> switch (code) {
>>> case HVCALL_NOTIFY_LONG_SPIN_WAIT:
>>> -   kvm_vcpu_on_spin(vcpu, kvm_arch_vcpu_in_kernel(vcpu));
>>> +   kvm_vcpu_on_spin(vcpu, kvm_x86_ops->spin_in_kernel(vcpu));
>>> break;
>>> case HVCALL_POST_MESSAGE:
>>> case HVCALL_SIGNAL_EVENT:
>>
>> This can be true as well.  I can change this on commit.
> 
> Thanks,
> hope you could help me to fix the same problem in patch-1(s390) too.

Yes.  Another possibility is to always pass false in patch 1 to
kvm_vcpu_on_spin.  Then the parameter can be adjusted in patches 3 and 4
(passing true for s390 and vcpu_mode_priv(vcpu) for ARM).

Paolo


Re: [PATCH v2 2/4] KVM: X86: implement the logic for spinlock optimization

2017-08-08 Thread Longpeng (Mike)


On 2017/8/8 15:30, Paolo Bonzini wrote:

> On 08/08/2017 06:05, Longpeng(Mike) wrote:
>> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
>> index cd0e6e6..dec5e8a 100644
>> --- a/arch/x86/kvm/hyperv.c
>> +++ b/arch/x86/kvm/hyperv.c
>> @@ -1268,7 +1268,7 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu)
>>  
>>  switch (code) {
>>  case HVCALL_NOTIFY_LONG_SPIN_WAIT:
>> -kvm_vcpu_on_spin(vcpu, kvm_arch_vcpu_in_kernel(vcpu));
>> +kvm_vcpu_on_spin(vcpu, kvm_x86_ops->spin_in_kernel(vcpu));
>>  break;
>>  case HVCALL_POST_MESSAGE:
>>  case HVCALL_SIGNAL_EVENT:
> 
> This can be true as well.  I can change this on commit.
> 


Thanks,
hope you could help me to fix the same problem in patch-1(s390) too.

> Paolo
> 
> .
> 


-- 
Regards,
Longpeng(Mike)



Re: [PATCH v2 2/4] KVM: X86: implement the logic for spinlock optimization

2017-08-08 Thread Longpeng (Mike)


On 2017/8/8 15:30, Paolo Bonzini wrote:

> On 08/08/2017 06:05, Longpeng(Mike) wrote:
>> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
>> index cd0e6e6..dec5e8a 100644
>> --- a/arch/x86/kvm/hyperv.c
>> +++ b/arch/x86/kvm/hyperv.c
>> @@ -1268,7 +1268,7 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu)
>>  
>>  switch (code) {
>>  case HVCALL_NOTIFY_LONG_SPIN_WAIT:
>> -kvm_vcpu_on_spin(vcpu, kvm_arch_vcpu_in_kernel(vcpu));
>> +kvm_vcpu_on_spin(vcpu, kvm_x86_ops->spin_in_kernel(vcpu));
>>  break;
>>  case HVCALL_POST_MESSAGE:
>>  case HVCALL_SIGNAL_EVENT:
> 
> This can be true as well.  I can change this on commit.
> 


Thanks,
hope you could help me to fix the same problem in patch-1(s390) too.

> Paolo
> 
> .
> 


-- 
Regards,
Longpeng(Mike)



Re: [PATCH v2 2/4] KVM: X86: implement the logic for spinlock optimization

2017-08-08 Thread Paolo Bonzini
On 08/08/2017 06:05, Longpeng(Mike) wrote:
> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
> index cd0e6e6..dec5e8a 100644
> --- a/arch/x86/kvm/hyperv.c
> +++ b/arch/x86/kvm/hyperv.c
> @@ -1268,7 +1268,7 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu)
>  
>   switch (code) {
>   case HVCALL_NOTIFY_LONG_SPIN_WAIT:
> - kvm_vcpu_on_spin(vcpu, kvm_arch_vcpu_in_kernel(vcpu));
> + kvm_vcpu_on_spin(vcpu, kvm_x86_ops->spin_in_kernel(vcpu));
>   break;
>   case HVCALL_POST_MESSAGE:
>   case HVCALL_SIGNAL_EVENT:

This can be true as well.  I can change this on commit.

Paolo


Re: [PATCH v2 2/4] KVM: X86: implement the logic for spinlock optimization

2017-08-08 Thread Paolo Bonzini
On 08/08/2017 06:05, Longpeng(Mike) wrote:
> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
> index cd0e6e6..dec5e8a 100644
> --- a/arch/x86/kvm/hyperv.c
> +++ b/arch/x86/kvm/hyperv.c
> @@ -1268,7 +1268,7 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu)
>  
>   switch (code) {
>   case HVCALL_NOTIFY_LONG_SPIN_WAIT:
> - kvm_vcpu_on_spin(vcpu, kvm_arch_vcpu_in_kernel(vcpu));
> + kvm_vcpu_on_spin(vcpu, kvm_x86_ops->spin_in_kernel(vcpu));
>   break;
>   case HVCALL_POST_MESSAGE:
>   case HVCALL_SIGNAL_EVENT:

This can be true as well.  I can change this on commit.

Paolo