freebsd-dev/sys/conf
David Xu b41f1452d9 Add scheduler CORE, the work I have done half a year ago, recent,
I picked it up again. The scheduler is forked from ULE, but the
algorithm to detect an interactive process is almost completely
different with ULE, it comes from Linux paper "Understanding the
Linux 2.6.8.1 CPU Scheduler", although I still use same word
"score" as a priority boost in ULE scheduler.

Briefly, the scheduler has following characteristic:
1. Timesharing process's nice value is seriously respected,
   timeslice and interaction detecting algorithm are based
   on nice value.
2. per-cpu scheduling queue and load balancing.
3. O(1) scheduling.
4. Some cpu affinity code in wakeup path.
5. Support POSIX SCHED_FIFO and SCHED_RR.
Unlike scheduler 4BSD and ULE which using fuzzy RQ_PPQ, the scheduler
uses 256 priority queues. Unlike ULE which using pull and push, the
scheduelr uses pull method, the main reason is to let relative idle
cpu do the work, but current the whole scheduler is protected by the
big sched_lock, so the benefit is not visible, it really can be worse
than nothing because all other cpu are locked out when we are doing
balancing work, which the 4BSD scheduelr does not have this problem.
The scheduler does not support hyperthreading very well, in fact,
the scheduler does not make the difference between physical CPU and
logical CPU, this should be improved in feature. The scheduler has
priority inversion problem on MP machine, it is not good for
realtime scheduling, it can cause realtime process starving.
As a result, it seems the MySQL super-smack runs better on my
Pentium-D machine when using libthr, despite on UP or SMP kernel.
2006-06-13 13:12:56 +00:00
..
defines Add some more defines that don't change the genericness of a file. 1995-05-11 20:21:23 +00:00
files Add scheduler CORE, the work I have done half a year ago, recent, 2006-06-13 13:12:56 +00:00
files.amd64 Add in a bunch of things to the mfi driver: 2006-05-18 23:30:48 +00:00
files.arm Convert the last offender, the SA1110 port, to ARM32_NEW_VM_LAYOUT, and 2006-06-06 21:06:57 +00:00
files.i386 - Add C-bus and ISA front-ends for le(4) so it can actually replace 2006-05-17 21:25:23 +00:00
files.ia64 o Move ISA specific code from ppc.c to ppc_isa.c -- a bus front- 2006-04-24 23:31:51 +00:00
files.pc98 - Add C-bus and ISA front-ends for le(4) so it can actually replace 2006-05-17 21:25:23 +00:00
files.powerpc add glue for ath_hal 2006-06-08 23:38:01 +00:00
files.sparc64 add ath_hal glue 2006-03-14 22:40:44 +00:00
kern.mk Enable -Wundef warnings for kernel/module compiles. From cpp.info: 2006-05-30 19:18:01 +00:00
kern.post.mk Handle MFS_IMAGE in the ${FULLKERNEL} target, so that we can build kernel 2006-06-13 00:57:10 +00:00
kern.pre.mk Hook XFS into kernel build. 2005-12-12 01:14:59 +00:00
kmod_syms.awk Our awk does not implement the ARGIND variable, so we were attempting 2002-08-06 19:31:04 +00:00
kmod.mk Commit the new (old) midi framework. It's based in parts on the NetBSD code, 2006-05-27 16:32:05 +00:00
ldscript.amd64
ldscript.arm
ldscript.i386 Align the .ctors section correctly. 2003-12-03 07:40:03 +00:00
ldscript.ia64 Have the linker provide btext. It's used for profiling. 2004-08-25 07:43:28 +00:00
ldscript.powerpc Page align the data segment. 2001-10-08 10:43:34 +00:00
ldscript.sparc64 Use the same SEARCH_DIR as other platforms. 2003-06-07 18:23:50 +00:00
Makefile.amd64 Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
Makefile.arm MFp4: 2006-06-12 22:58:50 +00:00
Makefile.i386 Set MACHINE to i386(pc98). This fixes cross-building. 2006-01-29 03:32:19 +00:00
Makefile.ia64 Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
Makefile.pc98 Set MACHINE to i386(pc98). This fixes cross-building. 2006-01-29 03:32:19 +00:00
Makefile.powerpc Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
Makefile.sparc64 Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
makeLINT.mk Implemented "nooption" and "nomakeoption" config(8) tokens. 2003-02-26 23:36:59 +00:00
makeLINT.sed
newvers.sh Pad the strings sccs[], version[], and osrelease[] up to a minimum of 2005-08-19 01:49:15 +00:00
NOTES Add scheduler CORE, the work I have done half a year ago, recent, 2006-06-13 13:12:56 +00:00
options Add scheduler CORE, the work I have done half a year ago, recent, 2006-06-13 13:12:56 +00:00
options.amd64 Fix LINSYSFS in the platform options files that I missed from the platform 2006-05-10 03:25:45 +00:00
options.arm Convert the last offender, the SA1110 port, to ARM32_NEW_VM_LAYOUT, and 2006-06-06 21:06:57 +00:00
options.i386 Send the pcvt(4) driver off to retirement. 2006-05-17 09:33:15 +00:00
options.ia64 o Move ISA specific code from ppc.c to ppc_isa.c -- a bus front- 2006-04-24 23:31:51 +00:00
options.pc98 Fix LINSYSFS in the platform options files that I missed from the platform 2006-05-10 03:25:45 +00:00
options.powerpc Catch up with sparc64 OFWCONS_POLL_HZ change 2004-06-25 13:44:34 +00:00
options.sparc64 - Hook up atkbdc(4), atkbd(4) and psm(4) to the sparc64 build, not 2005-06-10 20:58:59 +00:00
systags.sh Use a simpler way to reach the <machine> include dir, which should 2005-12-03 21:37:54 +00:00