WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH RFC V2 0/5] kvm : Paravirt-spinlock support for KVM g

To: Greg Kroah-Hartman <gregkh@xxxxxxx>, Sedat Dilek <sedat.dilek@xxxxxxxxx>, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>, KVM <kvm@xxxxxxxxxxxxxxx>, Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>, x86@xxxxxxxxxx, "H. Peter Anvin" <hpa@xxxxxxxxx>, Dave Jiang <dave.jiang@xxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>, Marcelo Tosatti <mtosatti@xxxxxxxxxx>, Yinghai Lu <yinghai@xxxxxxxxxx>, Gleb Natapov <gleb@xxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxxxxx>, Avi Kivity <avi@xxxxxxxxxx>, Xen <xen-devel@xxxxxxxxxxxxxxxxxxx>, Virtualization <virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx>, Rik van Riel <riel@xxxxxxxxxx>, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>, LKML <linux-kernel@xxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH RFC V2 0/5] kvm : Paravirt-spinlock support for KVM guests
From: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Date: Mon, 24 Oct 2011 00:33:08 +0530
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>, Suzuki Poulose <suzuki@xxxxxxxxxxxxxxxxxx>, Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>, Srivatsa Vaddagiri <vatsa@xxxxxxxxxxxxxxxxxx>
Delivery-date: Tue, 25 Oct 2011 09:35:34 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
The 5-patch series to follow this email extends KVM-hypervisor and Linux guest 
running on KVM-hypervisor to support pv-ticket spinlocks, based heavily on 
Xen's implementation.

Two hypercalls are being introduced in KVM hypervisor, one that allows a
vcpu (spinning on a lock) to block and another that allows a vcpu to kick
another out of blocking state.

This is discussed in : (posted by Srivatsa V).
https://lkml.org/lkml/2010/7/26/24
https://lkml.org/lkml/2011/1/19/212

The BASE patch is tip rc9 + Jeremy's following patches.
compare exchange (https://lkml.org/lkml/2011/8/29/321), 
xadd (https://lkml.org/lkml/2011/10/4/328)
x86/ticketlocklock  (https://lkml.org/lkml/2011/10/12/496).

Changes since last posting:
- rebased patchesto -rc9
- synchronization related changes based on Jeremy's changes (Jeremy 
Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>) pointed by
Stephan Diestelhorst <stephan.diestelhorst@xxxxxxx>
- enabling 32 bit guests
- splitted patches into two more chunks

Results:

set up : 
Kernel for host/guest : 3.1-rc9 + Jeremys ticketlock cleanup, xadd, pv spinlock 
patches as BASE

3 guests with 8VCPU, 4GB RAM, 1 used for kernbench (kernbench -f -H -M -o 20) 
other for cpuhog (shell script while 
true with an instruction)

scenario A: unpinned
scenario B: each vcpu pinned to corresponding cpu

1x: no hogs
2x: 8hogs in one guest
3x: 8hogs each in two guest

Result for Non PLE machine :
Machine : IBM xSeries with Intel(R) Xeon(R) x5570 2.93GHz CPU with 8 core , 
64GB RAM
                 BASE                    BASE+patch            %improvement
                 mean (sd)               mean (sd)
Scenario A:                             
case 1x:         157.495 (15.2924)       148.355 (7.35479)      5.80336
case 2x:         761.955 (581.384)       247.306 (64.4707)      67.5432
case 3x:         2804.36 (2613.57)       261.522 (85.0856)      90.6744

Scenario B                              
case 1x:         1241.86 (812.155)       313.805 (140.99)       74.731
case 2x:         1277.32 (771.316)       308.325 (124.808)      75.8616
case 3x:         1239.45 (860.012)       307.535 (124.243)      75.1878

Result for PLE machine:
Machine : IBM xSeries with Intel(R) Xeon(R)  X7560 2.27GHz CPU with 32/64 core, 
with 8  
         online cores and 4*64GB RAM

                 BASE                    BASE+patch            %improvement
                 mean (sd)               mean (sd)
Scenario A:                             
case 1x:         72.7133 (43.7109)       70.0734 (37.7866)      3.63056
case 2x:         124.138 (79.9515)       119.28 (81.3597)       3.91339
case 3x:         174.561 (132.209)       159.283 (116.232)      8.75224

Scenario B                              
case 1x:         166.101 (119.313)       160.056 (117.446)      3.63935
case 2x:         167.421 (120.767)       158.133 (115.022)      5.54769
case 3x:         169.317 (122.088)       159.353 (116.737)      5.88482

 Srivatsa Vaddagiri, Suzuki Poulose, Raghavendra K T (5): 
  Add debugfs support to print u32-arrays in debugfs
  Renaming of xen functions and change unsigned to u32
  Add two hypercalls to KVM hypervisor to support pv-ticketlocks
  Added configuration support to enable debug information for KVM Guests
  pv-ticketlocks support for linux guests running on KVM hypervisor
 
 arch/x86/Kconfig                |    9 ++
 arch/x86/include/asm/kvm_para.h |   12 ++-
 arch/x86/kernel/head32.c        |    3 +
 arch/x86/kernel/head64.c        |    3 +
 arch/x86/kernel/kvm.c           |  247 +++++++++++++++++++++++++++++++++++++++
 arch/x86/kvm/x86.c              |   67 +++++++++++-
 arch/x86/xen/debugfs.c          |  104 ----------------
 arch/x86/xen/debugfs.h          |    4 -
 arch/x86/xen/spinlock.c         |    2 +-
 fs/debugfs/file.c               |  108 +++++++++++++++++
 include/linux/debugfs.h         |   11 ++
 include/linux/kvm.h             |    1 +
 include/linux/kvm_host.h        |    5 +
 include/linux/kvm_para.h        |    2 +
 virt/kvm/kvm_main.c             |    1 +
 15 files changed, 468 insertions(+), 111 deletions(-)
---

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel