Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Apr 2004 17:24:30 -0400 (EDT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Nikos Ntarmos <ntarmos@ceid.upatras.gr>
Cc:        current@FreeBSD.org
Subject:   Re: P_NOLOAD + ULE = high load averages
Message-ID:  <Pine.NEB.3.96L.1040422172307.22456E-100000@fledge.watson.org>
In-Reply-To: <20040421003230.GA17810@diogenis.ceid.upatras.gr>

next in thread | previous in thread | raw e-mail | index | archive | help
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@fledge.watson.org      Senior Research Scientist, McAfee Research




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1040422172307.22456E-100000>