linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] KVM: Optimize kvm_arch_vcpu_ioctl_run function
@ 2020-04-13  3:45 Tianjia Zhang
  2020-04-13  8:56 ` Marc Zyngier
  2020-04-14 14:26 ` Vitaly Kuznetsov
  0 siblings, 2 replies; 8+ messages in thread
From: Tianjia Zhang @ 2020-04-13  3:45 UTC (permalink / raw)
  To: pbonzini, sean.j.christopherson, vkuznets, wanpengli, jmattson,
	joro, tglx, mingo, bp, x86, hpa, maz, james.morse,
	julien.thierry.kdev, suzuki.poulose
  Cc: kvm, linux-arm-kernel, kvmarm, linux-kernel, tianjia.zhang

kvm_arch_vcpu_ioctl_run() is only called in the file kvm_main.c,
where vcpu->run is the kvm_run parameter, so it has been replaced.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
 arch/x86/kvm/x86.c | 8 ++++----
 virt/kvm/arm/arm.c | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 3bf2ecafd027..70e3f4abbd4d 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8726,18 +8726,18 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
 		r = -EAGAIN;
 		if (signal_pending(current)) {
 			r = -EINTR;
-			vcpu->run->exit_reason = KVM_EXIT_INTR;
+			kvm_run->exit_reason = KVM_EXIT_INTR;
 			++vcpu->stat.signal_exits;
 		}
 		goto out;
 	}
 
-	if (vcpu->run->kvm_valid_regs & ~KVM_SYNC_X86_VALID_FIELDS) {
+	if (kvm_run->kvm_valid_regs & ~KVM_SYNC_X86_VALID_FIELDS) {
 		r = -EINVAL;
 		goto out;
 	}
 
-	if (vcpu->run->kvm_dirty_regs) {
+	if (kvm_run->kvm_dirty_regs) {
 		r = sync_regs(vcpu);
 		if (r != 0)
 			goto out;
@@ -8767,7 +8767,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
 
 out:
 	kvm_put_guest_fpu(vcpu);
-	if (vcpu->run->kvm_valid_regs)
+	if (kvm_run->kvm_valid_regs)
 		store_regs(vcpu);
 	post_kvm_run_save(vcpu);
 	kvm_sigset_deactivate(vcpu);
diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
index 48d0ec44ad77..ab9d7966a4c8 100644
--- a/virt/kvm/arm/arm.c
+++ b/virt/kvm/arm/arm.c
@@ -659,7 +659,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
 		return ret;
 
 	if (run->exit_reason == KVM_EXIT_MMIO) {
-		ret = kvm_handle_mmio_return(vcpu, vcpu->run);
+		ret = kvm_handle_mmio_return(vcpu, run);
 		if (ret)
 			return ret;
 	}
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] KVM: Optimize kvm_arch_vcpu_ioctl_run function
  2020-04-13  3:45 [PATCH] KVM: Optimize kvm_arch_vcpu_ioctl_run function Tianjia Zhang
@ 2020-04-13  8:56 ` Marc Zyngier
  2020-04-13  9:07   ` Tianjia Zhang
  2020-04-14 14:26 ` Vitaly Kuznetsov
  1 sibling, 1 reply; 8+ messages in thread
From: Marc Zyngier @ 2020-04-13  8:56 UTC (permalink / raw)
  To: Tianjia Zhang
  Cc: pbonzini, sean.j.christopherson, vkuznets, wanpengli, jmattson,
	joro, tglx, mingo, bp, x86, hpa, james.morse,
	julien.thierry.kdev, suzuki.poulose, kvm, linux-arm-kernel,
	kvmarm, linux-kernel

Tianjia,

On 2020-04-13 04:45, Tianjia Zhang wrote:
> kvm_arch_vcpu_ioctl_run() is only called in the file kvm_main.c,
> where vcpu->run is the kvm_run parameter, so it has been replaced.
> 
> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> ---
>  arch/x86/kvm/x86.c | 8 ++++----
>  virt/kvm/arm/arm.c | 2 +-
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 3bf2ecafd027..70e3f4abbd4d 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -8726,18 +8726,18 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu
> *vcpu, struct kvm_run *kvm_run)
>  		r = -EAGAIN;
>  		if (signal_pending(current)) {
>  			r = -EINTR;
> -			vcpu->run->exit_reason = KVM_EXIT_INTR;
> +			kvm_run->exit_reason = KVM_EXIT_INTR;
>  			++vcpu->stat.signal_exits;
>  		}
>  		goto out;
>  	}
> 
> -	if (vcpu->run->kvm_valid_regs & ~KVM_SYNC_X86_VALID_FIELDS) {
> +	if (kvm_run->kvm_valid_regs & ~KVM_SYNC_X86_VALID_FIELDS) {
>  		r = -EINVAL;
>  		goto out;
>  	}
> 
> -	if (vcpu->run->kvm_dirty_regs) {
> +	if (kvm_run->kvm_dirty_regs) {
>  		r = sync_regs(vcpu);
>  		if (r != 0)
>  			goto out;
> @@ -8767,7 +8767,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu
> *vcpu, struct kvm_run *kvm_run)
> 
>  out:
>  	kvm_put_guest_fpu(vcpu);
> -	if (vcpu->run->kvm_valid_regs)
> +	if (kvm_run->kvm_valid_regs)
>  		store_regs(vcpu);
>  	post_kvm_run_save(vcpu);
>  	kvm_sigset_deactivate(vcpu);
> diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
> index 48d0ec44ad77..ab9d7966a4c8 100644
> --- a/virt/kvm/arm/arm.c
> +++ b/virt/kvm/arm/arm.c
> @@ -659,7 +659,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu,
> struct kvm_run *run)
>  		return ret;
> 
>  	if (run->exit_reason == KVM_EXIT_MMIO) {
> -		ret = kvm_handle_mmio_return(vcpu, vcpu->run);
> +		ret = kvm_handle_mmio_return(vcpu, run);
>  		if (ret)
>  			return ret;
>  	}

Do you have any number supporting the idea that you are optimizing 
anything
here? Performance, code size, register pressure or any other relevant 
metric?

Thanks,

         M.
-- 
Jazz is not dead. It just smells funny...

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] KVM: Optimize kvm_arch_vcpu_ioctl_run function
  2020-04-13  8:56 ` Marc Zyngier
@ 2020-04-13  9:07   ` Tianjia Zhang
  0 siblings, 0 replies; 8+ messages in thread
From: Tianjia Zhang @ 2020-04-13  9:07 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: pbonzini, sean.j.christopherson, vkuznets, wanpengli, jmattson,
	joro, tglx, mingo, bp, x86, hpa, james.morse,
	julien.thierry.kdev, suzuki.poulose, kvm, linux-arm-kernel,
	kvmarm, linux-kernel



On 2020/4/13 16:56, Marc Zyngier wrote:
> Tianjia,
> 
> On 2020-04-13 04:45, Tianjia Zhang wrote:
>> kvm_arch_vcpu_ioctl_run() is only called in the file kvm_main.c,
>> where vcpu->run is the kvm_run parameter, so it has been replaced.
>>
>> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
>> ---
>>  arch/x86/kvm/x86.c | 8 ++++----
>>  virt/kvm/arm/arm.c | 2 +-
>>  2 files changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
>> index 3bf2ecafd027..70e3f4abbd4d 100644
>> --- a/arch/x86/kvm/x86.c
>> +++ b/arch/x86/kvm/x86.c
>> @@ -8726,18 +8726,18 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu
>> *vcpu, struct kvm_run *kvm_run)
>>          r = -EAGAIN;
>>          if (signal_pending(current)) {
>>              r = -EINTR;
>> -            vcpu->run->exit_reason = KVM_EXIT_INTR;
>> +            kvm_run->exit_reason = KVM_EXIT_INTR;
>>              ++vcpu->stat.signal_exits;
>>          }
>>          goto out;
>>      }
>>
>> -    if (vcpu->run->kvm_valid_regs & ~KVM_SYNC_X86_VALID_FIELDS) {
>> +    if (kvm_run->kvm_valid_regs & ~KVM_SYNC_X86_VALID_FIELDS) {
>>          r = -EINVAL;
>>          goto out;
>>      }
>>
>> -    if (vcpu->run->kvm_dirty_regs) {
>> +    if (kvm_run->kvm_dirty_regs) {
>>          r = sync_regs(vcpu);
>>          if (r != 0)
>>              goto out;
>> @@ -8767,7 +8767,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu
>> *vcpu, struct kvm_run *kvm_run)
>>
>>  out:
>>      kvm_put_guest_fpu(vcpu);
>> -    if (vcpu->run->kvm_valid_regs)
>> +    if (kvm_run->kvm_valid_regs)
>>          store_regs(vcpu);
>>      post_kvm_run_save(vcpu);
>>      kvm_sigset_deactivate(vcpu);
>> diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
>> index 48d0ec44ad77..ab9d7966a4c8 100644
>> --- a/virt/kvm/arm/arm.c
>> +++ b/virt/kvm/arm/arm.c
>> @@ -659,7 +659,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu,
>> struct kvm_run *run)
>>          return ret;
>>
>>      if (run->exit_reason == KVM_EXIT_MMIO) {
>> -        ret = kvm_handle_mmio_return(vcpu, vcpu->run);
>> +        ret = kvm_handle_mmio_return(vcpu, run);
>>          if (ret)
>>              return ret;
>>      }
> 
> Do you have any number supporting the idea that you are optimizing anything
> here? Performance, code size, register pressure or any other relevant 
> metric?
> 
> Thanks,
> 
>          M.

This is only a simplified implementation of the function, the impact on 
performance and register pressure can be ignored.

Thanks,
Tianjia

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] KVM: Optimize kvm_arch_vcpu_ioctl_run function
  2020-04-13  3:45 [PATCH] KVM: Optimize kvm_arch_vcpu_ioctl_run function Tianjia Zhang
  2020-04-13  8:56 ` Marc Zyngier
@ 2020-04-14 14:26 ` Vitaly Kuznetsov
  2020-04-15  2:19   ` Tianjia Zhang
  1 sibling, 1 reply; 8+ messages in thread
From: Vitaly Kuznetsov @ 2020-04-14 14:26 UTC (permalink / raw)
  To: Tianjia Zhang
  Cc: kvm, linux-arm-kernel, kvmarm, linux-kernel, tianjia.zhang,
	pbonzini, sean.j.christopherson, wanpengli, jmattson, joro, tglx,
	mingo, bp, x86, hpa, maz, james.morse, julien.thierry.kdev,
	suzuki.poulose

Tianjia Zhang <tianjia.zhang@linux.alibaba.com> writes:

> kvm_arch_vcpu_ioctl_run() is only called in the file kvm_main.c,
> where vcpu->run is the kvm_run parameter, so it has been replaced.
>
> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> ---
>  arch/x86/kvm/x86.c | 8 ++++----
>  virt/kvm/arm/arm.c | 2 +-
>  2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 3bf2ecafd027..70e3f4abbd4d 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -8726,18 +8726,18 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
>  		r = -EAGAIN;
>  		if (signal_pending(current)) {
>  			r = -EINTR;
> -			vcpu->run->exit_reason = KVM_EXIT_INTR;
> +			kvm_run->exit_reason = KVM_EXIT_INTR;

I have a more generic question: why do we need to pass 'kvm_run' to
kvm_arch_vcpu_ioctl_run() if it can be extracted from 'struct kvm_vcpu'?
The only call site looks like

virt/kvm/kvm_main.c:            r = kvm_arch_vcpu_ioctl_run(vcpu, vcpu->run);

>  			++vcpu->stat.signal_exits;
>  		}
>  		goto out;
>  	}
>  
> -	if (vcpu->run->kvm_valid_regs & ~KVM_SYNC_X86_VALID_FIELDS) {
> +	if (kvm_run->kvm_valid_regs & ~KVM_SYNC_X86_VALID_FIELDS) {
>  		r = -EINVAL;
>  		goto out;
>  	}
>  
> -	if (vcpu->run->kvm_dirty_regs) {
> +	if (kvm_run->kvm_dirty_regs) {
>  		r = sync_regs(vcpu);
>  		if (r != 0)
>  			goto out;
> @@ -8767,7 +8767,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
>  
>  out:
>  	kvm_put_guest_fpu(vcpu);
> -	if (vcpu->run->kvm_valid_regs)
> +	if (kvm_run->kvm_valid_regs)
>  		store_regs(vcpu);
>  	post_kvm_run_save(vcpu);
>  	kvm_sigset_deactivate(vcpu);
> diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
> index 48d0ec44ad77..ab9d7966a4c8 100644
> --- a/virt/kvm/arm/arm.c
> +++ b/virt/kvm/arm/arm.c
> @@ -659,7 +659,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
>  		return ret;
>  
>  	if (run->exit_reason == KVM_EXIT_MMIO) {
> -		ret = kvm_handle_mmio_return(vcpu, vcpu->run);
> +		ret = kvm_handle_mmio_return(vcpu, run);
>  		if (ret)
>  			return ret;
>  	}

-- 
Vitaly


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] KVM: Optimize kvm_arch_vcpu_ioctl_run function
  2020-04-14 14:26 ` Vitaly Kuznetsov
@ 2020-04-15  2:19   ` Tianjia Zhang
  2020-04-15  9:07     ` Vitaly Kuznetsov
  0 siblings, 1 reply; 8+ messages in thread
From: Tianjia Zhang @ 2020-04-15  2:19 UTC (permalink / raw)
  To: Vitaly Kuznetsov
  Cc: kvm, linux-arm-kernel, kvmarm, linux-kernel, pbonzini,
	sean.j.christopherson, wanpengli, jmattson, joro, tglx, mingo,
	bp, x86, hpa, maz, james.morse, julien.thierry.kdev,
	suzuki.poulose



On 2020/4/14 22:26, Vitaly Kuznetsov wrote:
> Tianjia Zhang <tianjia.zhang@linux.alibaba.com> writes:
> 
>> kvm_arch_vcpu_ioctl_run() is only called in the file kvm_main.c,
>> where vcpu->run is the kvm_run parameter, so it has been replaced.
>>
>> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
>> ---
>>   arch/x86/kvm/x86.c | 8 ++++----
>>   virt/kvm/arm/arm.c | 2 +-
>>   2 files changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
>> index 3bf2ecafd027..70e3f4abbd4d 100644
>> --- a/arch/x86/kvm/x86.c
>> +++ b/arch/x86/kvm/x86.c
>> @@ -8726,18 +8726,18 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
>>   		r = -EAGAIN;
>>   		if (signal_pending(current)) {
>>   			r = -EINTR;
>> -			vcpu->run->exit_reason = KVM_EXIT_INTR;
>> +			kvm_run->exit_reason = KVM_EXIT_INTR;
> 
> I have a more generic question: why do we need to pass 'kvm_run' to
> kvm_arch_vcpu_ioctl_run() if it can be extracted from 'struct kvm_vcpu'?
> The only call site looks like
> 
> virt/kvm/kvm_main.c:            r = kvm_arch_vcpu_ioctl_run(vcpu, vcpu->run);
> 

In the earlier version, kvm_run is used to pass parameters with user 
mode and is not included in the vcpu structure, so it has been retained 
until now.

Thanks,
Tianjia

>>   			++vcpu->stat.signal_exits;
>>   		}
>>   		goto out;
>>   	}
>>   
>> -	if (vcpu->run->kvm_valid_regs & ~KVM_SYNC_X86_VALID_FIELDS) {
>> +	if (kvm_run->kvm_valid_regs & ~KVM_SYNC_X86_VALID_FIELDS) {
>>   		r = -EINVAL;
>>   		goto out;
>>   	}
>>   
>> -	if (vcpu->run->kvm_dirty_regs) {
>> +	if (kvm_run->kvm_dirty_regs) {
>>   		r = sync_regs(vcpu);
>>   		if (r != 0)
>>   			goto out;
>> @@ -8767,7 +8767,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
>>   
>>   out:
>>   	kvm_put_guest_fpu(vcpu);
>> -	if (vcpu->run->kvm_valid_regs)
>> +	if (kvm_run->kvm_valid_regs)
>>   		store_regs(vcpu);
>>   	post_kvm_run_save(vcpu);
>>   	kvm_sigset_deactivate(vcpu);
>> diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
>> index 48d0ec44ad77..ab9d7966a4c8 100644
>> --- a/virt/kvm/arm/arm.c
>> +++ b/virt/kvm/arm/arm.c
>> @@ -659,7 +659,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
>>   		return ret;
>>   
>>   	if (run->exit_reason == KVM_EXIT_MMIO) {
>> -		ret = kvm_handle_mmio_return(vcpu, vcpu->run);
>> +		ret = kvm_handle_mmio_return(vcpu, run);
>>   		if (ret)
>>   			return ret;
>>   	}
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] KVM: Optimize kvm_arch_vcpu_ioctl_run function
  2020-04-15  2:19   ` Tianjia Zhang
@ 2020-04-15  9:07     ` Vitaly Kuznetsov
  2020-04-15 14:53       ` Paolo Bonzini
  0 siblings, 1 reply; 8+ messages in thread
From: Vitaly Kuznetsov @ 2020-04-15  9:07 UTC (permalink / raw)
  To: Tianjia Zhang
  Cc: kvm, linux-arm-kernel, kvmarm, linux-kernel, pbonzini,
	sean.j.christopherson, wanpengli, jmattson, joro, tglx, mingo,
	bp, x86, hpa, maz, james.morse, julien.thierry.kdev,
	suzuki.poulose

Tianjia Zhang <tianjia.zhang@linux.alibaba.com> writes:

> On 2020/4/14 22:26, Vitaly Kuznetsov wrote:
>> Tianjia Zhang <tianjia.zhang@linux.alibaba.com> writes:
>> 
>>> kvm_arch_vcpu_ioctl_run() is only called in the file kvm_main.c,
>>> where vcpu->run is the kvm_run parameter, so it has been replaced.
>>>
>>> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
>>> ---
>>>   arch/x86/kvm/x86.c | 8 ++++----
>>>   virt/kvm/arm/arm.c | 2 +-
>>>   2 files changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
>>> index 3bf2ecafd027..70e3f4abbd4d 100644
>>> --- a/arch/x86/kvm/x86.c
>>> +++ b/arch/x86/kvm/x86.c
>>> @@ -8726,18 +8726,18 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
>>>   		r = -EAGAIN;
>>>   		if (signal_pending(current)) {
>>>   			r = -EINTR;
>>> -			vcpu->run->exit_reason = KVM_EXIT_INTR;
>>> +			kvm_run->exit_reason = KVM_EXIT_INTR;
>> 
>> I have a more generic question: why do we need to pass 'kvm_run' to
>> kvm_arch_vcpu_ioctl_run() if it can be extracted from 'struct kvm_vcpu'?
>> The only call site looks like
>> 
>> virt/kvm/kvm_main.c:            r = kvm_arch_vcpu_ioctl_run(vcpu, vcpu->run);
>> 
>
> In the earlier version, kvm_run is used to pass parameters with user 
> mode and is not included in the vcpu structure, so it has been retained 
> until now.
>

In case this is no longer needed I'd suggest we drop 'kvm_run' parameter
and extract it from 'struct kvm_vcpu' when needed. This looks like a
natural add-on to your cleanup patch.

-- 
Vitaly


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] KVM: Optimize kvm_arch_vcpu_ioctl_run function
  2020-04-15  9:07     ` Vitaly Kuznetsov
@ 2020-04-15 14:53       ` Paolo Bonzini
  2020-04-16  2:00         ` Tianjia Zhang
  0 siblings, 1 reply; 8+ messages in thread
From: Paolo Bonzini @ 2020-04-15 14:53 UTC (permalink / raw)
  To: Vitaly Kuznetsov, Tianjia Zhang
  Cc: kvm, linux-arm-kernel, kvmarm, linux-kernel,
	sean.j.christopherson, wanpengli, jmattson, joro, tglx, mingo,
	bp, x86, hpa, maz, james.morse, julien.thierry.kdev,
	suzuki.poulose

On 15/04/20 11:07, Vitaly Kuznetsov wrote:
> In case this is no longer needed I'd suggest we drop 'kvm_run' parameter
> and extract it from 'struct kvm_vcpu' when needed. This looks like a
> natural add-on to your cleanup patch.

I agree, though I think it should be _instead_ of Tianjia's patch rather
than on top.

Paolo


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] KVM: Optimize kvm_arch_vcpu_ioctl_run function
  2020-04-15 14:53       ` Paolo Bonzini
@ 2020-04-16  2:00         ` Tianjia Zhang
  0 siblings, 0 replies; 8+ messages in thread
From: Tianjia Zhang @ 2020-04-16  2:00 UTC (permalink / raw)
  To: Paolo Bonzini, Vitaly Kuznetsov
  Cc: kvm, linux-arm-kernel, kvmarm, linux-kernel,
	sean.j.christopherson, wanpengli, jmattson, joro, tglx, mingo,
	bp, x86, hpa, maz, james.morse, julien.thierry.kdev,
	suzuki.poulose



On 2020/4/15 22:53, Paolo Bonzini wrote:
> On 15/04/20 11:07, Vitaly Kuznetsov wrote:
>> In case this is no longer needed I'd suggest we drop 'kvm_run' parameter
>> and extract it from 'struct kvm_vcpu' when needed. This looks like a
>> natural add-on to your cleanup patch.
> 
> I agree, though I think it should be _instead_ of Tianjia's patch rather
> than on top.
> 
> Paolo
> 

Thank you very much for the comments of Vitaly and Paolo, I will make a 
v2 patch.

Thanks and best,
Tianjia

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-04-16  2:01 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-13  3:45 [PATCH] KVM: Optimize kvm_arch_vcpu_ioctl_run function Tianjia Zhang
2020-04-13  8:56 ` Marc Zyngier
2020-04-13  9:07   ` Tianjia Zhang
2020-04-14 14:26 ` Vitaly Kuznetsov
2020-04-15  2:19   ` Tianjia Zhang
2020-04-15  9:07     ` Vitaly Kuznetsov
2020-04-15 14:53       ` Paolo Bonzini
2020-04-16  2:00         ` Tianjia Zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).