Re: [Xen-devel] [PATCH v5 0/2] x86/kvm: Reduce vcpu_is_preempted() overhead

2017-02-21 Thread Paolo Bonzini


On 20/02/2017 20:54, Peter Zijlstra wrote:
> On Mon, Feb 20, 2017 at 01:36:02PM -0500, Waiman Long wrote:
>> Waiman Long (2):
>>   x86/paravirt: Change vcp_is_preempted() arg type to long
>>   x86/kvm: Provide optimized version of vcpu_is_preempted() for x86-64
>>
>>  arch/x86/include/asm/paravirt.h  |  2 +-
>>  arch/x86/include/asm/qspinlock.h |  2 +-
>>  arch/x86/kernel/asm-offsets_64.c |  9 +
>>  arch/x86/kernel/kvm.c| 26 +-
>>  arch/x86/kernel/paravirt-spinlocks.c |  2 +-
>>  5 files changed, 37 insertions(+), 4 deletions(-)
> 
> I'm assuming this will go through the KVM tree, if people want me to
> take it through the tip tree, please let me know.
> 
> Acked-by: Peter Zijlstra (Intel) 

Applied, thanks.

Paolo

___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH v5 0/2] x86/kvm: Reduce vcpu_is_preempted() overhead

2017-02-20 Thread Peter Zijlstra
On Mon, Feb 20, 2017 at 01:36:02PM -0500, Waiman Long wrote:
> Waiman Long (2):
>   x86/paravirt: Change vcp_is_preempted() arg type to long
>   x86/kvm: Provide optimized version of vcpu_is_preempted() for x86-64
> 
>  arch/x86/include/asm/paravirt.h  |  2 +-
>  arch/x86/include/asm/qspinlock.h |  2 +-
>  arch/x86/kernel/asm-offsets_64.c |  9 +
>  arch/x86/kernel/kvm.c| 26 +-
>  arch/x86/kernel/paravirt-spinlocks.c |  2 +-
>  5 files changed, 37 insertions(+), 4 deletions(-)

I'm assuming this will go through the KVM tree, if people want me to
take it through the tip tree, please let me know.

Acked-by: Peter Zijlstra (Intel) 



___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


[Xen-devel] [PATCH v5 0/2] x86/kvm: Reduce vcpu_is_preempted() overhead

2017-02-20 Thread Waiman Long
 v4->v5:
  - As suggested by PeterZ, use the asm-offsets header file generation
mechanism to get the offset of the preempted field in
kvm_steal_time instead of hardcoding it.

 v3->v4:
  - Fix x86-32 build error.

 v2->v3:
  - Provide an optimized __raw_callee_save___kvm_vcpu_is_preempted()
in assembly as suggested by PeterZ.
  - Add a new patch to change vcpu_is_preempted() argument type to long
to ease the writing of the assembly code.

 v1->v2:
  - Rerun the fio test on a different system on both bare-metal and a
KVM guest. Both sockets were utilized in this test.
  - The commit log was updated with new performance numbers, but the
patch wasn't changed.
  - Drop patch 2.

As it was found that the overhead of callee-save vcpu_is_preempted()
can have some impact on system performance on a VM guest, especially
of x86-64 guest, this patch set intends to reduce this performance
overhead by replacing the C __kvm_vcpu_is_preempted() function by
an optimized version of __raw_callee_save___kvm_vcpu_is_preempted()
written in assembly.

Waiman Long (2):
  x86/paravirt: Change vcp_is_preempted() arg type to long
  x86/kvm: Provide optimized version of vcpu_is_preempted() for x86-64

 arch/x86/include/asm/paravirt.h  |  2 +-
 arch/x86/include/asm/qspinlock.h |  2 +-
 arch/x86/kernel/asm-offsets_64.c |  9 +
 arch/x86/kernel/kvm.c| 26 +-
 arch/x86/kernel/paravirt-spinlocks.c |  2 +-
 5 files changed, 37 insertions(+), 4 deletions(-)

-- 
1.8.3.1


___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel