make buildkernel hang with SCHED_ULE
Andrew Gallatin
gallatin at cs.duke.edu
Thu Aug 14 17:17:40 PDT 2003
Adam Migus writes:
> Folks,
> While doing some performance analysis (doing make -j5 buildkernel)
> on a set of 14 kernels I've hit one using the SCHED_ULE scheduler
> that hangs. It happens every time but not necessarily in the same
> place in the make.
>
<...>
> The hardware is a dual Xeon box. The kernel is SMP w/ SCHED_ULE
> instead of SCHED_4BSD, the options required for diskless and the
> following two options:
You have machdep.hlt_logical_cpus: 1 in your sysctl output. [BTW,
lots of people read this mail via the web archives at
http://docs.freebsd.org/cgi/getmsg.cgi?fetch=1073654+0+current/freebsd-current,
where its impossible to view mime; it would be MUCH better for us if
appended things like stack traces and sysctl output rather then
scrambling them for no reason]
SCHED_ULE is incompatible with halting logical CPUs. Something about
it does't know the core isn't running, so it schedules a job there
which never runs, and then it gets confused. When I boot a 1 CPU P4
with an SMP kernel and machdep.hlt_logical_cpus=1, it hangs before
making it to multiuser mode..
Try setting machdep.hlt_logical_cpus=0 (via sysctl now, and in
/boot/loader.conf so it doesn't happen again).
Drew
More information about the freebsd-current
mailing list