From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MGcJP-0006eD-RE for qemu-devel@nongnu.org; Tue, 16 Jun 2009 13:19:07 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MGcJK-0006au-M9 for qemu-devel@nongnu.org; Tue, 16 Jun 2009 13:19:07 -0400 Received: from [199.232.76.173] (port=47664 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MGcJK-0006ah-2R for qemu-devel@nongnu.org; Tue, 16 Jun 2009 13:19:02 -0400 Received: from mail-bw0-f223.google.com ([209.85.218.223]:53866) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MGcJJ-0004Gp-G9 for qemu-devel@nongnu.org; Tue, 16 Jun 2009 13:19:01 -0400 Received: by bwz23 with SMTP id 23so3775297bwz.34 for ; Tue, 16 Jun 2009 10:19:00 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <20090616170931.GE782@redhat.com> References: <20090615170201.GA3964@redhat.com> <20090615181622.GA782@redhat.com> <20090615193054.GB782@redhat.com> <20090615200552.GC782@redhat.com> <20090616152050.GD782@redhat.com> <20090616170931.GE782@redhat.com> Date: Tue, 16 Jun 2009 20:19:00 +0300 Message-ID: Subject: Re: [Qemu-devel] Register uhci_reset() callback. From: Blue Swirl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gleb Natapov Cc: qemu-devel@nongnu.org, Avi Kivity , Paul Brook On 6/16/09, Gleb Natapov wrote: > On Tue, Jun 16, 2009 at 07:54:25PM +0300, Blue Swirl wrote: > > On 6/16/09, Gleb Natapov wrote: > > > On Tue, Jun 16, 2009 at 06:14:51PM +0300, Blue Swirl wrote: > > > > > Because interrupt line is stuck a guest can't get to the point where it > > > > > loads a driver to the second device. For outside observer the guest > > > > > just hangs. > > > > > > > > I see. The problem is in piix_pci interrupt handling, pci_irq_levels[] > > > > should be set to zero on reset. > > > > > > The patch that does that was rejected earlier :) > > > http://lists.gnu.org/archive/html/qemu-devel/2009-06/msg00342.html > > > http://lists.gnu.org/archive/html/qemu-devel/2009-06/msg00344.html > > > > I think patch 2/3 is bogus, but 3/3 should be the correct way. Nobody > > commented on that. > > > > What is bogus about 2/3? But the comment were not about specific patch, > more about the general approach. And conclusion was that each device should > lower its line. This is how real HW works BTW. IMHO both things should That was the conclusion then, but it was incorrect. Real HW works like that, but qemu_irq only handles transition edges. It does not have state. > be done, pci bus should reset its internal state and each device should > lower its own line (bus implementation may be changed in the future to > more be like real HW). Bus should reset its own internal state but devices need not do anything about the qemu_irq. In 2/3 bus would reset also devices, which is even more wrong.