49012 Commits

Author SHA1 Message Date
ross
f39415fb66 Add sched.h. 1999-02-23 02:56:54 +00:00
ross
16204c31ac Generate the new schedclk() call into the MI kernel. Set schedhz
here to indicate that.
1999-02-23 02:56:40 +00:00
ross
b4a33c4e60 Scheduler bug fixes and reorganization
* fix the ancient nice(1) bug, where nice +20 processes incorrectly
  steal 10 - 20% of the CPU, (or even more depending on load average)
* provide a new schedclk() mechanism at a new clock at schedhz, so high
  platform hz values don't cause nice +0 processes to look like they are
  niced
* change the algorithm slightly, and reorganize the code a lot
* fix percent-CPU calculation bugs, and eliminate some no-op code

=== nice bug === Correctly divide the scheduler queues between niced and
compute-bound processes. The current nice weight of two (sort of, see
`algorithm change' below) neatly divides the USRPRI queues in half; this
should have been used to clip p_estcpu, instead of UCHAR_MAX.  Besides
being the wrong amount, clipping an unsigned char to UCHAR_MAX is a no-op,
and it was done after decay_cpu() which can only _reduce_ the value.  It
has to be kept <= NICE_WEIGHT * PRIO_MAX - PPQ or processes can
scheduler-penalize themselves onto the same queue as nice +20 processes.
(Or even a higher one.)

=== New schedclk() mechansism === Some platforms should be cutting down
stathz before hitting the scheduler, since the scheduler algorithm only
works right in the vicinity of 64 Hz. Rather than prescale hz, then scale
back and forth by 4 every time p_estcpu is touched (each occurance an
abstraction violation), use p_estcpu without scaling and require schedhz
to be generated directly at the right frequency. Use a default stathz (well,
actually, profhz) / 4, so nothing changes unless a platform defines schedhz
and a new clock.  Define these for alpha, where hz==1024, and nice was
totally broke.

=== Algorithm change === The nice value used to be added to the
exponentially-decayed scheduler history value p_estcpu, in _addition_ to
be incorporated directly (with greater wieght) into the priority calculation.
At first glance, it appears to be a pointless increase of 1/8 the nice
effect (pri = p_estcpu/4 + nice*2), but it's actually at least 3x that
because it will ramp up linearly but be decayed only exponentially, thus
converging to an additional .75 nice for a loadaverage of one. I killed
this, it makes the behavior hard to control, almost impossible to analyze,
and the effect (~~nothing at for the first second, then somewhat increased
niceness after three seconds or more, depending on load average) pointless.

=== Other bugs === hz -> profhz in the p_pctcpu = f(p_cpticks) calcuation.
Collect scheduler functionality. Try to put each abstraction in just one
place.
1999-02-23 02:56:03 +00:00
wrstuden
6790f70d78 Make cross-building from i386 to powerpc (from signed to unsigned char)
ports work right.
1999-02-23 01:50:26 +00:00
jonathan
68a5ad19be Fix off-by-one width: 220, not 221. confirmed against PROM setup. 1999-02-23 01:35:56 +00:00
simonb
381c553a53 Use -Os to reduce code size (from Krister Walfridsson). 1999-02-23 01:23:26 +00:00
thorpej
fbca0a78d7 Do all the fancy printf format checking. 1999-02-23 01:00:51 +00:00
msaitoh
9a58d580cd Add note about LD_PRELOAD 1999-02-22 23:07:16 +00:00
kleink
c49b4850b3 XPG4.2:
* Add the -s (first identifier found only) flag.
* Require at least one file operand; the standard does not permit reading from
stdin in case none were given.
* Recogize '\' as an additional identifier end character.
* Make the exit status depend on whether any matches were found.
1999-02-22 22:23:09 +00:00
kleink
1cfce9cbf5 Add the XPG4.2 -p flag. 1999-02-22 22:16:01 +00:00
is
e6da344c31 Update. 1999-02-22 22:07:37 +00:00
is
74ad0ecb0d Generate the MIT-assembler-format files statically. They nearly never change,
and if so, should be generated via the new Makefile and committed, too.
1999-02-22 21:25:05 +00:00
tsubai
16442fd649 Add MESH SCSI driver.
Sort entries.
1999-02-22 20:25:43 +00:00
thorpej
ca42d26309 GENERIC already has DDB. 1999-02-22 19:14:46 +00:00
pk
372e76a3bb Since V2 & V3 proms already pass us ihandles for stdin and stdout,
there's no need to open the device a second time. It suffices to
just convert the `ihandles' to `phandles'.
1999-02-22 17:15:30 +00:00
pk
4c7fbbb5c8 Add an approximation of the necessary sparc bits in here.
I've not followed the trend in this file by trying to wrench the MD
code into individual functions. Rather I,ve replaced several functions
wholesale.  Anyway, this whole file needs to be re-done.
1999-02-22 17:06:11 +00:00
drochner
220b8d9add PR kern/7033 (Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>): use
device minor to unit/partition macros from sys/disklabel.h
1999-02-22 16:00:01 +00:00
christos
ae6215337e Don't use 1: label; it is uses by the PIC_PROLOGUE macro and we jmp in the
wrong place!
1999-02-22 13:07:14 +00:00
simonb
ffa92484e2 Update cpp defines to current reality. 1999-02-22 11:57:18 +00:00
simonb
74f2d414ef Load the bootblocks at 0x8070000 so that ramdisk kernels don't
overwrite the beginning of the bootblocks.
1999-02-22 11:53:57 +00:00
simonb
69ba0d255c Update list of source files to reflect reality. 1999-02-22 11:31:46 +00:00
simonb
c3baaf3ba5 Lightweight memset routine. 1999-02-22 11:26:15 +00:00
simonb
31f50e4868 Assembly stubs to PROM callback routines. 1999-02-22 11:22:40 +00:00
simonb
80ef484669 Use sys/lib/libsa/ routines now. 1999-02-22 11:21:21 +00:00
simonb
74df4f53e0 Allow code in sector zero (from Michael Hitch).
Also in start.S:
 + Removed unused printf routine.
 + Removed unused dummy __main for gcc.
 + s/bzero/memset/.
1999-02-22 11:01:43 +00:00
simonb
09cca9e076 Don't use the conf.c->bootconf.c guff, remove last tape support,
and actually install the bootblocks.
1999-02-22 10:53:13 +00:00
christos
f4287ac1d3 Add internal structure used by the t* routines, protected via an ifdef 1999-02-22 10:34:28 +00:00
christos
13a9c36196 bump minor for t{search,walk,delete,find} 1999-02-22 10:33:51 +00:00
christos
7975455d45 t{search,find,walk,delete} from OpenBSD via Neil A. Carson 1999-02-22 10:33:15 +00:00
simonb
3d6a630813 Break single read and printf of text+data into two separate reads and
printfs.  Better aesthetically, especially with a twiddle.
1999-02-22 10:23:53 +00:00
simonb
63e306cbe7 Use "#ifdef UFS_NOCLOSE/UFS_NOWRITE" instead of "#ifdef SMALL". 1999-02-22 10:18:40 +00:00
simonb
6932c61287 Use memset() instead of bzero(). 1999-02-22 10:16:52 +00:00
bouyer
71036465a5 In cy693_setup_channel(), setup timings for IOR too (they were left to 0,
which is a way too higth timing for some devices). Thanks to Ken Wellsch
for trying the multiple debug kernels until the problem was located.
1999-02-22 10:12:00 +00:00
simonb
e7d831fa31 Define bzero()/bcopy() in terms of memset()/memcpy() if LIBSA_USE_MEMSET
or LIBSA_USE_MEMCPY is defined.  Most everything pulls in stand.h so
this should cover ports that only use memset/memcpy but still want to
pull in as much as possible from sys/lib/libsa.
1999-02-22 10:08:42 +00:00
simonb
e87d6bf17e More tape support not needed. 1999-02-22 09:25:16 +00:00
simonb
50ae7be229 Don't implicitly type the devopen() function.
Don't include machine/dec_prom.h.
1999-02-22 08:24:47 +00:00
simonb
2e4a4cb289 Revert to a simple memcpy implementation - a memcpy() PROM callback is not
available on all DECstation models.
1999-02-22 08:22:21 +00:00
simonb
2407241a09 Sync with sys/lib/libsa/ufs.c. Now the same except for the memset/memcpy
#defines at the top.
1999-02-22 08:16:57 +00:00
simonb
99c7714a77 Drop support for symlinks of UFS_NOSYMLINK is defined.
Don't compile in ufs_close/ufs_write if UFS_NOCLOSE/UFS_NOWRITE is defined.
Remove trailing whitespace.
1999-02-22 07:59:09 +00:00
simonb
f60844a657 Use printf() instead of putchar() if SA_NOPUTCHAR is defined (for the
pmax).
Also don't include stdarg.h/varargs.h - we don't use them here.
1999-02-22 07:53:52 +00:00
fvdl
f927176889 Add internal 3com PHYs for the ex driver. 1999-02-22 07:44:50 +00:00
simonb
ddf48f18a0 Remove traces of tape support - we're nowhere near handling it at the
moment.
1999-02-22 07:17:44 +00:00
mycroft
71eb5693e6 Use DMAMODE_DEMAND. 1999-02-22 03:24:33 +00:00
mycroft
0dbf3ab3ca Use DMAMODE_DEMAND. Not tested, but presumed to work. 1999-02-22 02:56:13 +00:00
mycroft
0d22ee1396 Use DMAMODE_DEMAND. Tested on an AS200. 1999-02-22 02:52:24 +00:00
mrg
2aa01ad0b9 if we are chrooting, write a symlink for the pid file so that ndc, etc,
continue to work as normal.  this allows named to run in a chroot jail
with zero loss of functionality.  with the bind8 -u <user> flag, we can
also make it run as non-root.  "stay tuned."
1999-02-22 02:37:27 +00:00
mycroft
10817df7f0 Oops; remove obsolete code. 1999-02-22 02:33:48 +00:00
mycroft
bd575a4ff6 Add support for demand mode with auto-init. 1999-02-22 02:32:43 +00:00
mycroft
529c6c50aa Use DMAMODE_LOOPDEMAND. Tested on a CS4231 in a WSS clone. 1999-02-22 02:25:20 +00:00
mycroft
7da867ec93 Use DMAMODE_LOOPDEMAND. Tested on a ViBRA16. 1999-02-22 02:16:40 +00:00