Bug #624
closedhang during boot
0%
Description
Hi,
after the changes to the CPU interrupt enablement (April 30), my laptop
hangs during boot. Last words with ACPI:
http://87.78.98.243/tmp/LPIC0026.JPG
And without ACPI:
http://87.78.98.243/tmp/LPIC0027.JPG
It doesn't seem to be completely frozen, though, since I still get ACPI
messages (such as when pressing the power button ("acpi_button0: power
button pressed")).
Sascha
Updated by qhwt+dfly almost 17 years ago
Same here. I tried replacing DRIVERSLEEP's with DELAY's in ata-all.c
and it made it into single-user mode, so there may be some edge cases
where DRIVERSLEEP is not usable in early boot stage.
Cheers.
Updated by dillon almost 17 years ago
:Same here. I tried replacing DRIVERSLEEP's with DELAY's in ata-all.c
:and it made it into single-user mode, so there may be some edge cases
:where DRIVERSLEEP is not usable in early boot stage.
:
:Cheers.
Hmm. Sascha, try changing the DRIVERSLEEPs to DELAYs in
/usr/src/sys/dev/disk/ata/ata-all.c and see if that fixes the problem.
Yonetani, could you put kprintf()'s around the DRIVERSLEEPs and tell
me if it hangs there or gets past them?
If worse comes to worse I'll back out that change, but I'd like to
try to track it down. I thought I was being conservative, I only
put them in the ata_reset() path (which runs without interrupts enabled).
It should be able to thread switch in there!
I will try loading HEAD onto my laptops to see if I can reproduce the
problem.
-Matt
Matthew Dillon
<dillon@backplane.com>
Updated by dillon almost 17 years ago
Ok, I reproduced the DRIVERSLEEP problem. I'm tracking it down.
-Matt
Updated by dillon almost 17 years ago
Ok, its been fixed. Thread0 wasn't being put on the LWKT run queue,
so when DRIVERSLEEP called lwkt_switch(), poof, nothing left but
the idle thread.
Thanks!
-Matt
Matthew Dillon
<dillon@backplane.com>