* [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).