Re: [Xen-devel] [PATCH v5 0/2] x86/kvm: Reduce vcpu_is_preempted() overhead
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
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
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