All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/2] x86/kvm: Reduce vcpu_is_preempted() overhead
@ 2017-02-15 21:37 Waiman Long
  2017-02-15 21:37 ` [PATCH v4 1/2] x86/paravirt: Change vcp_is_preempted() arg type to long Waiman Long
                   ` (4 more replies)
  0 siblings, 5 replies; 22+ messages in thread
From: Waiman Long @ 2017-02-15 21:37 UTC (permalink / raw)
  To: Jeremy Fitzhardinge, Chris Wright, Alok Kataria, Rusty Russell,
	Peter Zijlstra, Ingo Molnar, Thomas Gleixner, H. Peter Anvin
  Cc: linux-arch, x86, linux-kernel, virtualization, xen-devel, kvm,
	Pan Xinhui, Paolo Bonzini, Radim Krčmář,
	Boris Ostrovsky, Juergen Gross, Waiman Long

 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/kvm.c                | 32 +++++++++++++++++++++++++++++++-
 arch/x86/kernel/paravirt-spinlocks.c |  2 +-
 4 files changed, 34 insertions(+), 4 deletions(-)

-- 
1.8.3.1

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

end of thread, other threads:[~2017-02-17  9:43 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-15 21:37 [PATCH v4 0/2] x86/kvm: Reduce vcpu_is_preempted() overhead Waiman Long
2017-02-15 21:37 ` [PATCH v4 1/2] x86/paravirt: Change vcp_is_preempted() arg type to long Waiman Long
2017-02-15 21:37 ` Waiman Long
2017-02-15 21:37 ` Waiman Long
2017-02-16 16:09   ` Peter Zijlstra
2017-02-16 16:09   ` Peter Zijlstra
2017-02-16 16:09     ` Peter Zijlstra
2017-02-16 21:02     ` Waiman Long
2017-02-16 21:02     ` Waiman Long
2017-02-16 21:02       ` Waiman Long
2017-02-17  9:42       ` Peter Zijlstra
2017-02-17  9:42         ` Peter Zijlstra
2017-02-17  9:42       ` Peter Zijlstra
2017-02-15 21:37 ` [PATCH v4 2/2] x86/kvm: Provide optimized version of vcpu_is_preempted() for x86-64 Waiman Long
2017-02-15 21:37 ` Waiman Long
2017-02-15 21:37   ` Waiman Long
2017-02-16 16:48   ` Peter Zijlstra
2017-02-16 16:48   ` Peter Zijlstra
2017-02-16 16:48     ` Peter Zijlstra
2017-02-16 21:00     ` Waiman Long
2017-02-16 21:00       ` Waiman Long
2017-02-16 21:00     ` Waiman Long

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.