summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_synch.c
Commit message (Collapse)AuthorAgeFilesLines
* init_main.c subr_autoconf.c:gibbs1997-09-211-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for "interrupt driven configuration hooks". A component of the kernel can register a hook, most likely during auto-configuration, and receive a callback once interrupt services are available. This callback will occur before the root and dump devices are configured, so the configuration task can affect the selection of those two devices or complete any tasks that need to be performed prior to launching init. System boot is posponed so long as a hook is registered. The hook owner is responsible for removing the hook once their task is complete or the system boot can continue. kern_acct.c kern_clock.c kern_exit.c kern_synch.c kern_time.c: Change the interface and implementation for the kernel callout service. The new implemntaion is based on the work of Adam M. Costello and George Varghese, published in a technical report entitled "Redesigning the BSD Callout and Timer Facilities". The interface used in FreeBSD is a little different than the one outlined in the paper. The new function prototypes are: struct callout_handle timeout(void (*func)(void *), void *arg, int ticks); void untimeout(void (*func)(void *), void *arg, struct callout_handle handle); If a client wishes to remove a timeout, it must store the callout_handle returned by timeout and pass it to untimeout. The new implementation gives 0(1) insert and removal of callouts making this interface scale well even for applications that keep 100s of callouts outstanding. See the updated timeout.9 man page for more details.
* Removed unused #includes.bde1997-09-021-5/+1
|
* #include <machine/limits.h> explicitly in the few places that it is required.bde1997-08-211-1/+2
|
* Take verbal beating by wollman into account and fix DIAGNOSTIC test.julian1997-08-181-11/+10
| | | | | | | | | This version. 1/ avoids garret's introduced potential page fault. (I got one) 2/ removes compiler warnings Also fix the tunable scheduling quantum to return a better error code when fed a bad argument.
* Dejulianize DIAGNOSTIC panic code. The types are wrong; probably there'swollman1997-08-161-4/+6
| | | | a missing dereference.
* add a diagnostic to catch some common cases of tsleep beingjulian1997-08-131-1/+8
| | | | called from the wrong place.
* Make the scheduler quantum a tunable parameterjulian1997-08-081-2/+26
| | | | Reviewd by: John Dyson dyson@freebsd.org
* Preliminary support for per-cpu data pages.peter1997-06-221-9/+3
| | | | | | | | | | | | | | | | This eliminates a lot of #ifdef SMP type code. Things like _curproc reside in a data page that is unique on each cpu, eliminating the expensive macros like: #define curproc (SMPcurproc[cpunumber()]) There are some unresolved bootstrap and address space sharing issues at present, but Steve is waiting on this for other work. There is still some strictly temporary code present that isn't exactly pretty. This is part of a larger change that has run into some bumps, this part is standalone so it should be safe. The temporary code goes away when the full idle cpu support is finished. Reviewed by: fsmp, dyson
* Man the liferafts! Here comes the long awaited SMP -> -current merge!peter1997-04-261-2/+17
| | | | | | | | | | | | | | | | There are various options documented in i386/conf/LINT, there is more to come over the next few days. The kernel should run pretty much "as before" without the options to activate SMP mode. There are a handful of known "loose ends" that need to be fixed, but have been put off since the SMP kernel is in a moderately good condition at the moment. This commit is the result of the tinkering and testing over the last 14 months by many people. A special thanks to Steve Passe for implementing the APIC code!
* Wrapped mi_switch() with splstatclock()/splx(). This fixes excessivebde1997-02-271-3/+23
| | | | | interrupt latency for certain cases involving for restarting stopped processes.
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notpeter1997-02-221-1/+1
| | | | ready for it yet.
* This is the kernel Lite/2 commit. There are some requisite userlanddyson1997-02-101-3/+4
| | | | | | | | | | | | | | | changes, so don't expect to be able to run the kernel as-is (very well) without the appropriate Lite/2 userland changes. The system boots and can mount UFS filesystems. Untested: ext2fs, msdosfs, NFS Known problems: Incorrect Berkeley ID strings in some files. Mount_std mounts will not work until the getfsent library routine is changed. Reviewed by: various people Submitted by: Jeffery Hsu <hsu@freebsd.org>
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-1/+1
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* Make processes waken up eligible for immediate swap-in.dyson1996-10-171-2/+6
|
* Remove the code that renices +4 a process that has had 10 minutes ofgpalmer1996-09-221-7/+2
| | | | | | CPU time. I find it slightly annoying on one of our servers here. Also disliked by: David Greenman
* Change an splstatclock that should be an splhigh into an splhigh.dg1996-09-011-2/+2
| | | | Reviewed by: bde
* Fixed a stale comment.bde1996-08-281-2/+2
|
* Changed wakeup_one() to continue looping, possibly waking up additionaldg1996-07-311-8/+5
| | | | | | processes, until it finds one that is not swapped out. Submitted by: dyson
* Converted timer/run queues to 4.4BSD queue style. Removed old and unuseddg1996-07-311-104/+72
| | | | | | | sleep(). Implemented wakeup_one() which may be used in the future to combat the "thundering herd" problem for some special cases. Reviewed by: dyson
* Don't generate code for the unused function sleep().bde1996-04-071-1/+3
|
* Merge in Lite2: proc LIST changeshsu1996-03-111-4/+8
| | | | | | 64-bit fix for alpha add debugging code for locking Reviewed by: david & bde
* Improved killproc() log message and made it and the other similar messagedg1996-01-311-2/+2
| | | | | tolerant of p_ucred being invalid. Starting using killproc() where appropriate.
* Converted two options over to the new scheme: USER_LDT and KTRACE.wollman1996-01-031-1/+3
|
* Untangled the vm.h include file spaghetti.dg1995-12-071-1/+4
|
* Completed function declarations and/or added prototypes.bde1995-12-021-2/+3
|
* Finished (?) cleaning up sysinit stuff.bde1995-12-021-10/+3
|
* Fixed init functions argument type - caddr_t -> void *. Fixed a couple ofdg1995-09-091-4/+4
| | | | compiler warnings.
* Reviewed by: julian with quick glances by bruce and othersjulian1995-08-281-3/+15
| | | | | | | | | | | | | | | | | | | | | | Submitted by: terry (terry lambert) This is a composite of 3 patch sets submitted by terry. they are: New low-level init code that supports loadbal modules better some cleanups in the namei code to help terry in 16-bit character support some changes to the mount-root code to make it a little more modular.. NOTE: mounting root off cdrom or NFS MIGHT be broken as I haven't been able to test those cases.. certainly mounting root of disk still works just fine.. mfs should work but is untested. (tomorrows task) The low level init stuff includes a total rewrite of init_main.c to make it possible for new modules to have an init phase by simply adding an entry to a TEXT_SET (or is it DATA_SET) list. thus a new module can be added to the kernel without editing any other files other than the 'files' file.
* Remove trailing whitespace.rgrimes1995-05-301-2/+2
|
* Add and move declarations to fix all of the warnings from `gcc -Wimplicit'bde1995-03-161-4/+3
| | | | | | (except in netccitt, netiso and netns) and most of the warnings from `gcc -Wnested-externs'. Fix all the bugs found. There were no serious ones.
* Don't mess with already freed structures when a process is being rundg1994-12-121-13/+15
| | | | down.
* Removed references to bclnlist which we don't use/support/need.dg1994-10-181-3/+1
|
* All of this is cosmetic. prototypes, #includes, printfs and so on. Makesphk1994-10-021-5/+7
| | | | GCC a lot more silent.
* "idle priority" support. Based on code from Henrik Vestergaard Draboel,dg1994-10-021-2/+3
| | | | but substantially rewritten by me.
* While in the real world, I had a bad case of being swapped out for a lot ofphk1994-09-251-2/+2
| | | | | | | | cycles. While waiting there I added a lot of the extra ()'s I have, (I have never used LISP to any extent). So I compiled the kernel with -Wall and shut up a lot of "suggest you add ()'s", removed a bunch of unused var's and added a couple of declarations here and there. Having a lap-top is highly recommended. My kernel still runs, yell at me if you kernel breaks.
* Realtime priority scheduling support.dg1994-09-011-6/+12
| | | | Submitted by: Henrik Vestergaard Draboel
* Added $Id$dg1994-08-021-0/+1
|
* The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch.rgrimes1994-05-251-0/+1
| | | | | Reviewed by: Rodney W. Grimes Submitted by: John Dyson and David Greenman
* BSD 4.4 Lite Kernel Sourcesrgrimes1994-05-241-0/+666
OpenPOWER on IntegriCloud