P_NOLOAD + ULE = high load averages

Robert Watson rwatson at FreeBSD.org
Thu Apr 22 14:24:52 PDT 2004

On Wed, 21 Apr 2004, Nikos Ntarmos wrote:

> There was a thread on "unusually high load averages" when running under
> sched_ule, which (afaik) came at an abrupt halt in January 2004. 
> Anyway, I've been looking at this thing lately and have come to believe
> that "pagezero" is (one of) the culprit(s). IMO the source of the
> problem lies in /sys/kern/sched_ule.c having no provision for processes
> with P_NOLOAD set. With pagezero not running at PRI_ITHD,
> kseq_load_{add,rem} count pagezero as oh-another-normal-process, thus
> the "expected-plus-one" load reported in the above thread. The attached
> diff should fix this (at least it has fixed it here -- running
> 5.2-CURRENT on a PCA56, just cvsup'ed from cvsup.gr.freebsd.org). Could
> someone please review/commit the changes or should I better send-pr it? 

I chatted with Jeff briefly about this change: he pointed out that this
change may not work well if the flag can change at run-time, and it looks
like (from a grep) that it may be.  It looks like it only changes because
it isn't set in kthread_create(), since it appears to be a static thread
property once the thread is off running, so perhaps we just need to make
sure it's set in kthread_create and doesn't change later.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Senior Research Scientist, McAfee Research

More information about the freebsd-current mailing list