From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:34406) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TtK3n-0005BD-3c for qemu-devel@nongnu.org; Thu, 10 Jan 2013 10:28:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TtK3f-0007o6-7R for qemu-devel@nongnu.org; Thu, 10 Jan 2013 10:28:51 -0500 Received: from e7.ny.us.ibm.com ([32.97.182.137]:58148) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TtK3f-0007nJ-3g for qemu-devel@nongnu.org; Thu, 10 Jan 2013 10:28:43 -0500 Received: from /spool/local by e7.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 10 Jan 2013 10:28:40 -0500 Received: from d01relay01.pok.ibm.com (d01relay01.pok.ibm.com [9.56.227.233]) by d01dlp03.pok.ibm.com (Postfix) with ESMTP id 74D51C90058 for ; Thu, 10 Jan 2013 10:28:32 -0500 (EST) Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay01.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r0AFSWb2283762 for ; Thu, 10 Jan 2013 10:28:32 -0500 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r0AFSVtJ009431 for ; Thu, 10 Jan 2013 13:28:32 -0200 Message-ID: <50EEDE1F.2010206@linux.vnet.ibm.com> Date: Thu, 10 Jan 2013 10:28:31 -0500 From: "Jason J. Herne" MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH 0/7 v2] KVM regsync Reply-To: jjherne@linux.vnet.ibm.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: agraf@suse.de, borntraeger@de.ibm.com, aliguori@us.ibm.com, mtosatti@redhat.com, qemu-devel@nongnu.org, R65777@freescale.com, jan.kiszka@siemens.com Rework the method used to synchronize CPU registers between Qemu & KVM. This patch set extends kvm_arch_put_registers() and kvm_arch_get_registers() to take a register bitmap parameter. All existing code paths are updated to specify this new parameter. IMPORTANT NOTE: The PPC and i386 implementations are incomplete. I am submitting this code at this time only to get a review on the implementation of the existing code and to perhaps seek assistance with the mentioned architectures. I am not sure who will finish the implementation of PPC/i386 yet. Due to the fact that I am unfamiliar with these architectures at the register level and I do not have test environments I would like to humbly request that a maintainer of these architectures take a look at it. Or perhaps Bharat could handle the PPC code? This would only leave i386 to worry about. If I cannot find someone to handle i386 I will look into the feasibility of completing it myself. In order to complete the missing implementations, kvm_arch_get_registers and kvm_arch_put_registers (and associated helper functions) will need to be updated to only sync the registers contained in the new bitmap argument. Also, each set of registers represented by one of the bits must be mutually exclusive with respect to every other bit. if this is not the case then local register data can be lost when kvm_arch_get_registers is called causing an old register value to overwrite a newer local value. -- -- Jason J. Herne (jjherne@linux.vnet.ibm.com)