summaryrefslogtreecommitdiffstats
path: root/sys/kern/sched_ule.c
Commit message (Collapse)AuthorAgeFilesLines
* - Create a function sched_interact_score() which decides on thejeff2003-03-041-70/+86
| | | | | | | | | interactivity of a kseg and assigns it a value of 0 through 100. - Use sched_interact_score() to determine the dynamic priority. - Define SCHED_CURR() in terms of sched_interact_score(). - Adjust the maximum slice back down to 100ms. - Remove redundant clearing of ke_runq in sched_wakeup() - Clean up #defines and comment them.
* - Shift the tick count by 10 and back around sched_pctcpu_update()jeff2003-03-031-2/+8
| | | | | | | calculations. Keep this changes local to the function so the tick count is in its natural form otherwise. Previously 1000 was added each time a tick fired and we divided by 1000 when it was reported. This is done to reduce rounding errors.
* - In sched_add() special case PRI_TIMESHARE and PRI_ITHD|PRI_REALTIME. Wejeff2003-03-031-9/+22
| | | | | | always place ITHD & REALTIME threads on the current queue of the current cpu. Prior to this change an interrupt thread would only ever run on one cpu.
* - Refrain from setting the td_priority in sched_wakeup(). It will be resetjeff2003-03-031-6/+5
| | | | before we return to user space.
* Change the process flags P_KSES to be P_THREADED.julian2003-02-271-1/+1
| | | | This is just a cosmetic change but I've been meaning to do it for about a year.
* Move a bunch of flags from the KSE to the thread.julian2003-02-171-6/+6
| | | | | | | | I was in two minds as to where to put them in the first case.. I should have listenned to the other mind. Submitted by: parts by davidxu@ Reviewed by: jeff@ mini@
* - Enable STRICT_RESCHED until code that dynamically decides on reschedjeff2003-02-101-0/+2
| | | | strictness based on the current workload is finished.
* - Add a new variable 'kg_runtime' that tracks the amount of time we've run.jeff2003-02-101-25/+66
| | | | | | | | | - Use the ratio of kg_runtime / kg_slptime to determine our dynamic priority. - Scale kg_runtime and kg_slptime back when the sum of the two exceeds SCHED_SLP_RUN_MAX. This allows us to slowly forget old behavior. - Scale back the runtime and slptime in fork so that the new process has the same ratio but much less accumulated time. This causes new behavior to be noticed more quickly.
* - Make some context switches conditional on SCHED_STRICT_RESCHED. This mayjeff2003-02-031-62/+146
| | | | | | | | | | have some negative effect on interactivity but it yields great perf. gains. This also brings the conditions under which ULE context switches inline with SCHED_4BSD. - Define some new kseq_* functions for manipulating the run queue. - Add a new kseq member ksq_rslices and ksq_bload. rslices is the sum of the slices of runnable kses. This will be used for push load balance decisions. bload is the number of threads blocked waiting on IO.
* - Stop abusing oncpu for our cpu binding. Define a scheduler local elementjeff2003-02-031-11/+14
| | | | | in the kse datastructure called ke_cpu. This is the cpu which we are currently bound to. Some flags may be added later to support hard binding.
* Use hz if stathz is zero. Adopted from sched_4bsd.scottl2003-02-021-1/+3
|
* - Use ksq_load as the authoritive count of kses on the pair of kseqs forjeff2003-01-291-84/+79
| | | | | | | | sched_runnable() et all. - Remove some dead code in sched_clock(). - Define two macros KSEQ_SELF() and KSEQ_CPU() for getting the kseq of the current cpu or some alternate cpu. - Start introducing kseq_() functions, such as kseq_choose() and kseq_setup().
* - Remove debugging code that didn't work on UP.jeff2003-01-291-44/+0
|
* - Allow idle's pctcpu time to be calculated.jeff2003-01-281-6/+6
|
* - Fix the ksq_load calculation. It now reflects the number of entries on thejeff2003-01-281-27/+134
| | | | | | | | run queue for each cpu. - Introduce kse stealing into the sched_choose() code. This helps balance cpus better in cases where process turnover is high. This implementation is fairly trivial and will likely be only a temporary measure until something more sophisticated has been written.
* - Add the ule scheduler. This is intended to be a general purpose processjeff2003-01-261-0/+697
scheduler with many SMP benefits. It is still very experimental and should be used only in test environments.
OpenPOWER on IntegriCloud