On Sun, Dec 20, 2020 at 06:27:33AM +0000, James Cook wrote:
> On Sat, Dec 19, 2020 at 07:33:42AM +0000, James Cook wrote:
> > > Suggestions are welcome. In the meantime I am slowly trying to debug
> > > this myself, mostly as a learning exercise. I've successfully built my
> > > own bsd.rd (using the instructions on the release(8) man page) with the
> > > intention of adding some debug output to narrow down where it's
> > > getting stuck, but I don't know my way around the kernel code.
> > 
> > Minor progress: I have determined that the kernel gets at least as far
> > as exec-ing the init process (more precisely, calling sys_execve in
> > init_main.c).
> 
> I found out init gets stuck calling sleep(2) in setctty in
> sbin/init/init.c. (Details below on how I determined that.)
> 
> Any idea what could cause a call to sleep to just hang indefinitely?
> 

Can you try hpet instead of tsc?

Either sysctl kern.timecounter.hardware=acpihpet0

or build a kernel with something like this which will give hpet a higher
priority than tsc.

Index: sys/dev/acpi/acpihpet.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpihpet.c,v
retrieving revision 1.24
diff -u -p -r1.24 acpihpet.c
--- sys/dev/acpi/acpihpet.c     6 Jul 2020 13:33:08 -0000       1.24
+++ sys/dev/acpi/acpihpet.c     20 Dec 2020 09:32:40 -0000
@@ -45,7 +45,7 @@ static struct timecounter hpet_timecount
        0xffffffff,             /* counter_mask (32 bits) */
        0,                      /* frequency */
        0,                      /* name */
-       1000,                   /* quality */
+       2500,                   /* quality */
        NULL,                   /* private bits */
        0,                      /* expose to user */
 };

Reply via email to