Subject: Re: Nice 20 process running despite needed CPU time
To: Bjoern Labitzke <hermit@cs.tu-berlin.de>
From: R. C. Dowdeswell <elric@mabelode.imrryr.org>
List: current-users
Date: 05/02/2000 13:29:44
On 957276153 seconds since the Beginning of the UNIX epoch
Bjoern Labitzke wrote:
>
>As you can see I am running setiathome for this test with nice level 0, cvs
>with nice level 10 and the dnet-client with nice level 20. Before starting
>the cvs client, setiathome got all the CPU cycles, dnet none. Since starting
>cvs dnet gets 0.5-10.0% of the cycles!
>
>But I could not reproduce this behaviour with two seticlients, from which I
>niced one to 10. In that scenario dnet got no cycles. So perhaps the problem
>occurs only, if the kernel (e.g. for file io) is used. Is this reproducable?
>(For me it is, as the above example shows.) Any ideas what I might try as well
>to limit the possible scope of the problem?

Yes.  Try instead of setiathome and dnetc, busy loops:

int
main()
{
	for(;;)
		;
}

I think that you may be experiencing the seti client and cvs both
being blocked on IO and thus the dnet client has an opportunity to
run.

Another thing to try would be to run seti nice 0, and cvs nice 10.  Then
see what the system idle time is.  If it is 0.5-10.0%, then the dnet client
was running exactly the right amount.  ;-)

 == Roland Dowdeswell                      http://www.Imrryr.ORG/~elric/  ==
 == The Unofficial NetBSD Web Pages        http://www.Imrryr.ORG/NetBSD/  ==
 == The NetBSD Project                            http://www.NetBSD.ORG/  ==