From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:34866) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAzmn-0005z1-In for qemu-devel@nongnu.org; Fri, 23 Mar 2012 04:23:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SAzmg-0006Q1-BM for qemu-devel@nongnu.org; Fri, 23 Mar 2012 04:23:49 -0400 Received: from e23smtp08.au.ibm.com ([202.81.31.141]:42098) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAzmf-0006PE-QB for qemu-devel@nongnu.org; Fri, 23 Mar 2012 04:23:42 -0400 Received: from /spool/local by e23smtp08.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 23 Mar 2012 08:20:56 +1000 Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.235.139]) by d23relay04.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q2N8HLPb2764864 for ; Fri, 23 Mar 2012 19:17:23 +1100 Received: from d23av04.au.ibm.com (loopback [127.0.0.1]) by d23av04.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q2N8NJkU009609 for ; Fri, 23 Mar 2012 19:23:20 +1100 From: Raghavendra K T Date: Fri, 23 Mar 2012 13:52:46 +0530 Message-Id: <20120323082242.17193.16289.sendpatchset@codeblue> Subject: [Qemu-devel] [PATCH 0/2] QEMU kvm: Adding paravirtual spinlock support for x86. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity , Jan Kiszka Cc: Anthony Liguori , KVM , Qemu-devel , Marcelo Tosatti , Srivatsa Vaddagiri , Alexander Graf The patch, extends KVM-hypervisor and Linux guest running on KVM-hypervisor to support pv-ticket spinlocks. PV ticket spinlock helps to solve Lock Holder Preemption problem discussed in http://www.amd64.org/fileadmin/user_upload/pub/LHP-commented_slides.pdf. When spinlock is contended,a guest vcpu relinqueshes cpu by halt(). Correspondingly, One hypercall is introduced in KVM hypervisor,that allows a vcpu to kick the halted vcpu to continue with execution. Note: Below patch should be applied only after corresponding linux-header changes taken into qemu via scripts/update-linux-headers.sh script. --- Changes in V3: rename PVLOCK_KICK --> PV_UNHALT add MSR related changes to aid migration Changes in V2: Drop the syncing kernel header changes. (Alex) rename KICK_VCPU --> PVLOCK_KICK. Raghavendra K T(2): add PV_UNHALT feature support. add support to get/set vcpu unhalt msr to aid migration target-i386/cpu.h | 1 + target-i386/kvm.c | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletions(-) V5 Kernel changes: https://lkml.org/lkml/2012/3/23/50 V4 kernel changes: https://lkml.org/lkml/2012/1/14/66 Qemu changes for V4: http://www.mail-archive.com/kvm@vger.kernel.org/msg66450.html V3 kernel Changes: https://lkml.org/lkml/2011/11/30/62 V2 kernel changes : https://lkml.org/lkml/2011/10/23/207 Previous discussions : (posted by Srivatsa V). https://lkml.org/lkml/2010/7/26/24 https://lkml.org/lkml/2011/1/19/212 Qemu patch for V3: http://lists.gnu.org/archive/html/qemu-devel/2011-12/msg00397.html