On Sun, 28 May 2000, Jacob A. Hart wrote:
> I remember the scheduler bug you're talking about. My system feels much
> the same as it did during 4.0-CURRENT when that bug was active. I had a
> collection of wrapper scripts for CPU intensive programs that suspended
> rc5des, ran the program, then reenabled it again. Should have held on to
> them, I guess.
Check out http://people.FreeBSD.org/~green/mean.c.
> > If this change
> > fixes things for you, please report it asap, since my understanding is
> > that this problem is rather elusive and annoying.
> No, it didn't work, unfortunately. To test it, I renice'd rc5des to a
> couple of different values while encoding an MP3.
It's an issue. Nice values count for less than before due to fixes
that Luoqi Chen made (and I committed). The behavior now isn't optimal,
but it is better than the system locking up. NICE_WEIGHT might be okay
to keep at 2. Try the attached diff; I'm pretty sure it won't blow
things up :)
The diff should make a process at -20 which uses all available CPU
schedule just slightly the ahead of a process at +20 which uses no CPU.
A process which uses full CPU at 0 niceness would have a priority of
128, whereas a process using no CPU at 0 niceness would have a priority
of 90. All processes will always have a priority less than or equal to
128, which is the priority at which a process with a niceness of +20
always runs at. A +20 process won't get better priority than anything
else, period. Try it out, see how it works for you:)
Brian Fundakowski Feldman \ FreeBSD: The Power to Serve! /
[EMAIL PROTECTED] `------------------------------'
--- /usr/src/sys/sys/proc.h Fri May 26 20:15:46 2000
+++ /home/green/tmp/proc.h Fri Jun 9 20:13:30 2000
@@ -405,10 +405,10 @@
* the range 100-256 Hz (approximately).
#define INVERSE_ESTCPU_WEIGHT 8 /* 1 / (priorities per estcpu level) */
-#define NICE_WEIGHT 1 /* priorities per nice level */
+#define NICE_WEIGHT 2 /* priorities per nice level */
#define PPQ (128 / NQS) /* priorities per queue */
#define ESTCPULIM(e) \
- min((e), INVERSE_ESTCPU_WEIGHT * (NICE_WEIGHT * PRIO_TOTAL - PPQ) + \
+ min((e), INVERSE_ESTCPU_WEIGHT * (NICE_WEIGHT * PRIO_TOTAL / 2 - PPQ) + \
INVERSE_ESTCPU_WEIGHT - 1)
extern u_long ps_arg_cache_limit;
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message