P_NOLOAD + ULE = high load averages

Nikos Ntarmos ntarmos at ceid.upatras.gr
Tue Apr 27 08:04:05 PDT 2004

Oh boy... Something really wicked must be going on with my ISP's SMTP,
or something out there is devouring my emails... Here I go again.

On Thu, Apr 22, 2004 at 05:24:30PM -0400, Robert Watson wrote:
> 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.

Looking at the sources I found out that P_NOLOAD is dropped by
kthread_create() only because fork1() selectively copies P_* flags
from the father to the child process. I'm not sure whether that's
right or wrong, but FWIW it seems ok to me. After all, grep'ing my way
through the source tree, I found only three cases of P_NOLOAD'ed
processes: "idle", "pagezero", and the "clock" swi. AFAIK none of
these will ever fork a child, so preservation of P_NOLOAD seems like a
non-issue to me. Plus, the proposed fix only affects the calculation
of the load averages, and does so in the right direction imo. Anyway,
it seems like the change was committed, so could someone close


 Nikos "Noth" Ntarmos    | < ntarmos at ceid dot upatras dot gr >
 NetCINS Lab. @ C.E.I.D. | [ http://{noth,p2p}.ceid.upatras.gr/ ]
 U. of Patras - Greece   | ( 38.2594N, 21.7428E ) ( 1024D / CF95160A )

More information about the freebsd-current mailing list