From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: Using xen-unstable, dom0 hangs during boot Date: Mon, 1 Mar 2010 10:10:05 -0500 Message-ID: <20100301151005.GA7881@phenom.dumpdata.com> References: <8115AF16522A3D4383C1FF753036713F9B1B522B@cosmail01.lsi.com> <4B8703B9.9000207@goop.org> <8115AF16522A3D4383C1FF753036713F9B1B52D8@cosmail01.lsi.com> <20100226144622.GP2761@reaktio.net> <8115AF16522A3D4383C1FF753036713F9B1B54B0@cosmail01.lsi.com> <8115AF16522A3D4383C1FF753036713F9B21E600@cosmail01.lsi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <8115AF16522A3D4383C1FF753036713F9B21E600@cosmail01.lsi.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "Nadolski, Ed" Cc: Jeremy Fitzhardinge , "Xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org On Sun, Feb 28, 2010 at 04:47:21PM -0700, Nadolski, Ed wrote: > > -----Original Message----- > On 02/25/2010 02:18 PM, Nadolski, Ed wrote: > > I'm running Fedora 12 (kernel 2.6.31.5-127.fc12.x86_64) on a Dell T7500 Xeon with VT-x and VT-d. After building xen-unstable and rebooting, the dom0 Linux hangs a few seconds after it gets control from Xen, and I have to power-cycle to recover. Here are the last messages before it hangs: > > > > [ 2.766882] loop: module loaded > > [ 2.767736] input: Macintosh mouse button emulation as /devices/virtual/input/input2 > > [ 2.769396] xen_set_ioapic_routing: irq 20 gsi 20 vector 20 ioapic 0 pin 20 triggering 1 polarity 1 > > [ 2.770342] achi 0000:00:1f.2: PCI INT C -> GSI 20 (level, low) -> IRQ 20 > > [ 2.771158] ahci 0000:00:1f.2: AHCI 0001.0200 32 slots 6 ports 3 Gbps 0x27 impl SATA mode > > [ 2.772078] ahci 0000:00:1f.2: flags: 64bit ncq sntf led clo pio ems > > <> > > > > I've added a bunch of trace prints. With serial ports enabled for trace capture, the hang actually occurs earlier than the ahci code above. It now occurs during the serial8250_config_port() function in the 8250/16650 serial driver initialization. There is a call to probe_irq_on(), which calls msleep(20), but the msleep() never returns. (see below) > > If I hit the power button on the front panel, it generates an interrupt that forces the msleep() to return. Also, if I replace the msleep(20) with mdelay(20), the code does not hang at that point. (In either case, the code does hang again a short while later.) > > I'm not too familiar with kernel internals - what could cause the msleep() not to return? Possibly an interrupt gets missed, or is not getting unmasked? I think you are hot on the trail. Try hitting 'i' (or maybe it is 'I') and see what Xen prints out for the IRQ mapping. Earlier on you mentioned that you saw: "Xen: Cannot share IRQ0 with guest." which is a bit strange, considering you are booting Dom0. IRQ0 is usually the timer, but it looks as if the serial port is on interrupt 0? It shouldn't be - try adding some more printk's and find out what IRQ it thinks it is. Also try to boot the kernel without Xen and see what IRQ the serial port driver uses then.