From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=54000 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OqQZM-0007PY-RI for qemu-devel@nongnu.org; Tue, 31 Aug 2010 09:08:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OqQZH-0004EN-Py for qemu-devel@nongnu.org; Tue, 31 Aug 2010 09:08:08 -0400 Received: from mail-vw0-f45.google.com ([209.85.212.45]:40423) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OqQZH-0004EJ-Mn for qemu-devel@nongnu.org; Tue, 31 Aug 2010 09:08:03 -0400 Received: by vws19 with SMTP id 19so5535227vws.4 for ; Tue, 31 Aug 2010 06:08:03 -0700 (PDT) Message-ID: <4C7CFEC1.8040204@codemonkey.ws> Date: Tue, 31 Aug 2010 08:08:17 -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> In-Reply-To: <20100831025808.GA19374@valinux.co.jp> 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: Isaku Yamahata Cc: blauwirbel@gmail.com, alex.williamson@redhat.com, avi@redhat.com, glommer@redhat.com, qemu-devel@nongnu.org On 08/30/2010 09:58 PM, Isaku Yamahata wrote: >> I was thinking that we should stick entirely within the qdev abstraction. >> >> The patchset I sent out introduced a cold reset as a qdev property on >> the devices. >> >> For warm reset, if I understand correctly, we need two things. We need >> to 1) control propagation order and we need to 2) differentiate >> per-device between cold reset and warm reset. >> >> For (2), I don't know that we truly do need it. For something like PCI >> AER, wouldn't we just move the AER initialization to the qdev init >> function and then never change the AER registers during reset? >> >> IOW, the only way to do a cold reset would be to destroy and recreate >> the device. >> > I'm lost here. Then, what should qdev_reset() do? > I don't know, that's what I'm trying to understand. As of this moment, you've convinced me that it should be a warm reset. However, I'm not yet convinced that we need to allow buses to change the propagation path of the warm reset. Regards, Anthony Liguori