From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O6pRn-0003BI-4F for qemu-devel@nongnu.org; Tue, 27 Apr 2010 14:23:51 -0400 Received: from [140.186.70.92] (port=47211 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O6pRk-00037j-DL for Qemu-devel@nongnu.org; Tue, 27 Apr 2010 14:23:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O6pRi-0004jE-J3 for Qemu-devel@nongnu.org; Tue, 27 Apr 2010 14:23:48 -0400 Received: from mail-pw0-f45.google.com ([209.85.160.45]:46705) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O6pRi-0004j8-EH for Qemu-devel@nongnu.org; Tue, 27 Apr 2010 14:23:46 -0400 Received: by pwi6 with SMTP id 6so8812820pwi.4 for ; Tue, 27 Apr 2010 11:23:45 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: Date: Tue, 27 Apr 2010 21:23:43 +0300 Message-ID: Subject: Re: [Qemu-devel] SPARC not booting SMP Linux kernel From: Blue Swirl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?6ZmI5a6H6aOe?= , Artyom Tarasenko Cc: Qemu-devel@nongnu.org On 4/27/10, =E9=99=88=E5=AE=87=E9=A3=9E wrote: > Actually this has been test before. > > http://lists.gnu.org/archive/html/qemu-devel/2006-08/msg00512.html That was before I added SMP support to OpenBIOS. > I've tested Debian 3.1 (with Linux 2.4.27.3) and Debian 4.0 (with > Linux 2.6.18.6), on both qemu 0.10.6 and 0.12.3, emulating machine is > set to SS-20. > > 1. non-smp kernel successfully boots with both -smp 1 or -smp 2. > 2. smp kernel can only boot with -smp 1. (The 2.6 kernel is cross > compiled by gcc 4.2.4 since no binary package is available) > > Some investigation with qemu's debug message and Linux kernel dump > (the 2.6 kernel) shows that > > 1. When the boot cpu tries to start cpu 1, cpu 1 calls > local_irq_enable. After that, cpu 1 get's lot's of level 14 interrupt. > 2. Printing out the executed TBs' pc values shows that kernel > interrupt handler is executed. > 3. Qemu's do_interrupt debug message shows that cpu 1 always get level > 14 interrupt at the same pc, which is the nop instruction just after > the "mov %g1, %psr" instruction. > > I guess that the interrupt is not cleared even after the execution of > the interrupt handler. I've found debian installation report which > boots smp linux kernel, so I thinks this problem is caused by qemu? > > I'm tring to fix this problem but I'm not familiar with sparc > architecture, is there any clue? This sounds awfully familiar to the problems Solaris had with interrupts. Does the problem still exist with git HEAD version of QEMU?