tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: hang on boot



On Fri, Oct 26, 2012 at 03:42:07PM +0200, Christoph Egger wrote:
> 
> Hi,
> 
> this machine (-current, amd64, xen dom0) hangs at boot.
> dmesg snippet:
> 
> 
> svwsata0 at pci1 dev 14 function 0: ServerWorks HT-1000 SATA Controller
> (rev. 0x00)
> svwsata0: using ioapic0 pin 7, event channel 7 for native-PCI interrupt
> atabus0 at svwsata0 channel 0
> atabus1 at svwsata0 channel 1
> atabus2 at svwsata0 channel 2
> atabus3 at svwsata0 channel 3
> svwsata0: WARNING: power management not supported
> svwsata1 at pci1 dev 14 function 1: ServerWorks HT-1000 SATA Controller
> (rev. 0x00)
> 
> svwsata1: WARNING: power management not supported
> pchb0 at pci0 dev 2 function 0: ServerWorks HT1000SB South Bridge (rev.
> 0x00)
> rccide0 at pci0 dev 2 function 1: ServerWorks HT-1000 IDE Controller
> (rev. 0x00)
> rccide0: primary channel interrupting at ioapic0 pin 14, event channel 8
> atabus4 at rccide0 channel 0
> rccide0: secondary channel interrupting at ioapic0 pin 15, event channel 9
> atabus5 at rccide0 channel 1
> rccide0: WARNING: power management not supported
> [...
> ata_get_params
> ata_exec_xfer 0xffffa000013c5f60 channel 0 drive 1
> atastart from ata_exec_xfer, flags 0x100
> atastart: xfer 0xffffa000013c5f60 channel 0 drive 1
> scsibus0: waiting 2 seconds for devices to settle...
> atabusattach: ch_drive_type 0x0 0x2
> uhub0 at usb2: ServerWorks EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
> uhub1 at usb0: ServerWorks OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
> uhub2 at usb1: ServerWorks OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
> svwsata0 port 0: device present, speed: 1.5Gb/s
> wd0 at atabus0 drive 0wdattach
> 
> ata_get_params
> ata_exec_xfer 0xffffa000013c5f60 channel 0 drive 0
> atastart from ata_exec_xfer, flags 0x0
> atastart: xfer 0xffffa000013c5f60 channel 0 drive 0
> wd0: <ST3160815AS>
> wd0: 149 GB, 310101 cyl, 16 head, 63 sec, 512 bytes/sect x 312581808 sectors
> wd0: atap_dmatiming_mimi=120, atap_dmatiming_recom=120
> wdopen
> ata_get_params
> ata_exec_xfer 0xffffa000013c5f60 channel 0 drive 0
> atastart from ata_exec_xfer, flags 0x0
> atastart: xfer 0xffffa000013c5f60 channel 0 drive 0
> wdgetdisklabel
> wdgetdefaultlabel
> wdstrategy (wd0)
> wdstart wd0
> ata_exec_xfer 0xffffa000013c5f60 channel 0 drive 0
> atastart from ata_exec_xfer, flags 0x0
> atastart: xfer 0xffffa000013c5f60 channel 0 drive 0
> wdc_ata_bio_start svwsata0:0:0 state 0 drive_flags 0x0 c_flags 0x0
> ch_flags 0x0
> wdc_ata_bio_start svwsata0:0:0 state 0 drive_flags 0x0 c_flags 0x0
> ch_flags 0x100
> _wdc_ata_bio_start svwsata0:0:0
> wdc_ata_bio_intr svwsata0:0:0
> wdc_ata_bio_intr svwsata0:0:0
> wdc_ata_bio_intr svwsata0:0:0
> wdc_ata_bio_done svwsata0:0:0: flags 0x0
> wdc_ata_done: drv_done
> wddone wd0
> wdstart wd0
> atastart from wdc_ata_done, flags 0x0
> 
> 
> there it hangs. any ideas what's wrong?

No. It looks like wdgetdisklabel() wants to read the disk through
readdisklabel(). wd.c gets the read request and executes it properly, but
the calling thread doesn't get woken up.

Now I would check if wddone() is really doing the biodone(), and if
wdgetdisklabel() is really stuck in biowait().

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index