From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=36011 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PcgHq-0002I3-4S for qemu-devel@nongnu.org; Tue, 11 Jan 2011 10:37:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PcgHp-0000yW-4q for qemu-devel@nongnu.org; Tue, 11 Jan 2011 10:37:30 -0500 Received: from mx1.redhat.com ([209.132.183.28]:32291) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PcgHo-0000y5-Sp for qemu-devel@nongnu.org; Tue, 11 Jan 2011 10:37:29 -0500 Message-ID: <4D2C793C.2070003@redhat.com> Date: Tue, 11 Jan 2011 17:37:32 +0200 From: Avi Kivity MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCH 26/35] kvm: Eliminate KVMState arguments References: <4D2616D6.4080309@linux.vnet.ibm.com> <4D26D6CF.5070405@web.de> <4D27A16F.9030809@linux.vnet.ibm.com> <4D282489.90506@web.de> <4D2B6506.6070907@linux.vnet.ibm.com> <4D2B6845.7050809@web.de> <4D2B6ADD.4090505@codemonkey.ws> <4D2C1C5D.2050504@redhat.com> <4D2C6290.1060607@linux.vnet.ibm.com> <1EA102F5-B6C2-43BC-9493-0271B287FC18@suse.de> <4D2C649F.6080508@linux.vnet.ibm.com> <4D2C67C2.5080000@redhat.com> <4D2C6AFA.4040104@linux.vnet.ibm.com> <4D2C6FAB.3050209@redhat.com> <4D2C7353.2000008@linux.vnet.ibm.com> In-Reply-To: <4D2C7353.2000008@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Marcelo Tosatti , Jan Kiszka , Alexander Graf , kvm@vger.kernel.org, qemu-devel@nongnu.org On 01/11/2011 05:12 PM, Anthony Liguori wrote: >>> No, it really doesn't :-) Cirrus VGA and std VGA share a lot of >>> code. But that doesn't mean that we treat them as one device. >> >> Cirrus and VGA really are separate devices. They share code because >> on evolved from the other, and is backwards compatible with the >> other. i8254 and i8254-kvm did not evolve from each other, > > > Actually, they did, but that's besides the point. The code did, the devices did not. >> Why not? Whatever state the kernel keeps, we expose to userspace and >> allow sending it over the wire. > > What exactly is the scenario you're concerned about? > > Migration between userspace HPET and in-kernel HPET? Yes. To a lesser extent, a client doing 'info hpet' or similar and failing for kernel hpet. > > One thing I've been considering is essentially migration filters. It > would be a set of rules that essentially were "hpet-kvm.* = hpet.*" > which would allow migration from hpet to hpet-kvm given a translation > of state. I think this sort of higher level ruleset would make it > easier to support migration between versions of the device model. > > Of course, that only gives you a forward path. It doesn't give you a > backwards path. > It would be easier to have them use the same device id in the first place. If it looks like an i8254, quacks like an i8254, and live migrates like an i8254, it's probably an i8254.