From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=39432 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OqRQi-0001qW-5i for qemu-devel@nongnu.org; Tue, 31 Aug 2010 10:03:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OqRLn-0004tx-8Q for qemu-devel@nongnu.org; Tue, 31 Aug 2010 09:58:16 -0400 Received: from mail-vw0-f45.google.com ([209.85.212.45]:62147) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OqRLn-0004tm-3H for qemu-devel@nongnu.org; Tue, 31 Aug 2010 09:58:11 -0400 Received: by vws19 with SMTP id 19so5591409vws.4 for ; Tue, 31 Aug 2010 06:58:10 -0700 (PDT) Message-ID: <4C7D0A6E.8000302@codemonkey.ws> Date: Tue, 31 Aug 2010 08:58:06 -0500 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCH 5/5] RFC: distinguish warm reset from cold reset. References: <0a460e01cca4fa24f446c7a715fe6df17d0be9ed.1283152674.git.yamahata@valinux.co.jp> <4C7BAB2A.30608@codemonkey.ws> <20100831025808.GA19374@valinux.co.jp> <4C7CFEC1.8040204@codemonkey.ws> <20100831131449.GG10499@redhat.com> <4C7D01B3.4030602@codemonkey.ws> <20100831132158.GH10499@redhat.com> <4C7D02FB.4030706@codemonkey.ws> <4C7D03C7.9090406@redhat.com> <4C7D04E4.2060305@codemonkey.ws> <4C7D07B9.4090909@redhat.com> In-Reply-To: <4C7D07B9.4090909@redhat.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: Avi Kivity Cc: Gleb Natapov , glommer@redhat.com, qemu-devel@nongnu.org, blauwirbel@gmail.com, Isaku Yamahata , alex.williamson@redhat.com On 08/31/2010 08:46 AM, Avi Kivity wrote: > On 08/31/2010 04:34 PM, Anthony Liguori wrote: >> On 08/31/2010 08:29 AM, Avi Kivity wrote: >>> Note, for most devices there's no difference. x86 has INIT and >>> RESET, with the keyboard controller RESET signal sometimes wired to >>> INIT, and RAM doesn't have RESET. Otherwise most devices don't see >>> a difference. >> >> Yes, that's why I'm wondering if we can just get away with using a >> simple reset() callback and for the handful of devices that don't do >> a full reset, they can just move the state unaffected by warm reset >> to ->init(). >> > > This seems reasonable. But I'm still not sure whether the reset signal can be deliver based on a pre-order transversal or whether a custom transversal was required that each bus participates in. >> For cold reset, I'd rather approach it as a device destroy + create. >> This means that given a DeviceState, we need to collect enough >> information to recreate the device. I'm not 100% sure we have that >> today but if we solve that problem, it means we can migrate the >> device tree during migration which is a feature I'd really like to see. > > Why do we need a cold reset at all? it doesn't map to anything. That's why I'm suggesting a second-class approach to implementing it if someone really wants it. Regards, Anthony Liguori