From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NgCoX-0002eW-Pt for qemu-devel@nongnu.org; Sat, 13 Feb 2010 02:53:17 -0500 Received: from [199.232.76.173] (port=41960 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NgCoX-0002e5-48 for qemu-devel@nongnu.org; Sat, 13 Feb 2010 02:53:17 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1NgCoT-0004bA-Q2 for qemu-devel@nongnu.org; Sat, 13 Feb 2010 02:53:16 -0500 Received: from mail-px0-f185.google.com ([209.85.216.185]:41594) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NgCoT-0004b2-Em for qemu-devel@nongnu.org; Sat, 13 Feb 2010 02:53:13 -0500 Received: by pxi15 with SMTP id 15so2151097pxi.23 for ; Fri, 12 Feb 2010 23:53:12 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: <1265841648-27249-1-git-send-email-atar4qemu@google.com> From: Blue Swirl Date: Sat, 13 Feb 2010 09:52:52 +0200 Message-ID: Content-Type: text/plain; charset=UTF-8 Subject: [Qemu-devel] Re: sparc32 fix spurious dma interrupts List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Artyom Tarasenko Cc: qemu-devel@nongnu.org On Sat, Feb 13, 2010 at 12:32 AM, Artyom Tarasenko wrote: > 2010/2/12 Blue Swirl : >> On Thu, Feb 11, 2010 at 12:40 AM, Artyom Tarasenko >> wrote: >>> Don't raise interrupt when not enabled. >>> Don't set DMA_INTR bit spuriously. >>> Don't print misleading debug messages "Raise IRQ" when not raising any. >> >> This breaks most of my Linux tests. *BSD are unaffected. For example >> sparc-test 2.0: >> >> eth0: LANCE 52:54:00:12:34:56 >> esp0: IRQ 36 SCSI ID 7 Clk 40MHz CCYC=25000 CCF=8 TOut 167 NCR53C9XF(espfast) >> ESP: Total of 1 ESP hosts found, 1 actually in use. >> scsi0 : Sparc ESP100A-FAST >> esp0: Aborting command >> esp0: dumping state >> esp0: dma -- cond_reg addr >> esp0: SW [sreg<11> sstep<04> ireg<18>] >> esp0: HW reread [sreg<93> sstep<00> ireg<10>] >> esp0: current command [tgt<02> lun<00> pphase cphase] >> esp0: disconnected >> esp0: Aborting command >> esp0: dumping state >> esp0: dma -- cond_reg addr >> esp0: SW [sreg<11> sstep<04> ireg<18>] >> esp0: HW reread [sreg<03> sstep<04> ireg<00>] >> esp0: current command [tgt<02> lun<00> pphase cphase] >> esp0: disconnected >> esp0: Resetting scsi bus >> esp0: SCSI bus reset interrupt >> esp0: Aborting command >> esp0: dumping state >> esp0: dma -- cond_reg addr >> esp0: SW [sreg<03> sstep<04> ireg<80>] >> esp0: HW reread [sreg<91> sstep<04> ireg<18>] >> esp0: current command [tgt<02> lun<00> pphase cphase] >> esp0: disconnected >> scsi: Device offlined - not ready after error recovery: host 0 channel >> 0 id 2 lun 0 >> >> Since Open/NetBSD still works, there may be yet again another bug that >> your patch uncovers. > > Looks like Linux has problems with the fist part of the patch: not > raising irqs when they are not enabled. > The part is actually not relevant for Solaris, so we could just skip > it. But it would be nicer to find this another bug. > It seems that there is some asymmetry: Solaris complained about > spurious interrupts only on write operations. > Do you have an idea why setting the DMA_INTR bit and raising the irq > was split between multiple functions? I'd suspect my sloppiness. ;-)