#
506dbbfd |
| 19-Apr-2013 |
tedu <tedu@openbsd.org> |
sprinkle ifdef MP to disable cpu migration code when not needed. ok deraadt
|
#
7f771310 |
| 10-Jul-2012 |
kettenis <kettenis@openbsd.org> |
Make sure that we don't schedule processes on CPUs that we havetaken out of the scheduler.
ok hasbaert@. deraadt@
|
#
8f15e6a4 |
| 23-Mar-2012 |
guenther <guenther@openbsd.org> |
Make rusage totals, itimers, and profile settings per-process instead of per-rthread. Handling of per-thread tick and runtime counters inspired by how FreeBSD does it.
ok kettenis@
|
#
940a9231 |
| 10-Mar-2012 |
haesbaert <haesbaert@openbsd.org> |
Account for sched_noidle and document the scheduler variables.
ok tedu@
|
#
1a90c3d6 |
| 12-Oct-2011 |
miod <miod@openbsd.org> |
Remove all MD diagnostics in cpu_switchto(), and move them to MI code if they apply.
ok oga@ deraadt@
|
#
971e1bb6 |
| 06-Jul-2011 |
art <art@openbsd.org> |
Clean up after P_BIGLOCK removal. KERNEL_PROC_LOCK -> KERNEL_LOCK KERNEL_PROC_UNLOCK -> KERNEL_UNLOCK
oga@ ok
|
#
dca70426 |
| 28-May-2010 |
guenther <guenther@openbsd.org> |
Delete a fallback definition for CPU_INFO_UNIT that's both unnecessary and incorrect. Kills an XXX comment.
ok syuu, thib, art, kettenis, millert, deraadt
|
#
38795e35 |
| 25-May-2010 |
kettenis <kettenis@openbsd.org> |
Actively remove processes from the runqueues of a CPU when we stop it. Also make sure not to take the scheduler lock once we have stopped a CPU such that we can safely take it away without having to
Actively remove processes from the runqueues of a CPU when we stop it. Also make sure not to take the scheduler lock once we have stopped a CPU such that we can safely take it away without having to worry about deadlock because it happened to own the scheduler lock.
Fixes issues with suspen on SMP machines.
ok mlarkin@, marco@, art@, deraadt@
show more ...
|
#
d7c93107 |
| 14-May-2010 |
kettenis <kettenis@openbsd.org> |
Make sure we initialize sched_lock before we try to use it.
ok miod@, thib@, oga@, jsing@
|
#
b56c900d |
| 23-Apr-2010 |
deraadt <deraadt@openbsd.org> |
Merge the only relevant (for now) parts of simplelock.h into lock.h since it is time to start transitioning away from the no-op behaviour. ok oga kettenis
|
#
9485775d |
| 06-Apr-2010 |
kettenis <kettenis@openbsd.org> |
Implement functions to take away the secondary CPUs from the scheduler and give them back again, effectively stopping and starting these CPUs. Use the stop function in sys_reboot().
ok marco@, dera
Implement functions to take away the secondary CPUs from the scheduler and give them back again, effectively stopping and starting these CPUs. Use the stop function in sys_reboot().
ok marco@, deraadt@
show more ...
|
#
08c2c447 |
| 09-Jan-2010 |
kettenis <kettenis@openbsd.org> |
Add code to stop scheduling processes on CPUs, effectively halting that CPU. Use this to do a shutdown with only the boot processor running. This should avoid nasty races during shutdown.
help from
Add code to stop scheduling processes on CPUs, effectively halting that CPU. Use this to do a shutdown with only the boot processor running. This should avoid nasty races during shutdown.
help from art@, ok deraadt@, miod@
show more ...
|
#
d35815d5 |
| 29-Nov-2009 |
kettenis <kettenis@openbsd.org> |
Backout previous commit. There is a possible race which makes it possible for sys_reboot() to hang forever.
|
#
d746c22d |
| 25-Nov-2009 |
kettenis <kettenis@openbsd.org> |
Add a mechanism to stop the scheduler from scheduling processes on a particular CPU such that it just sits and spins in the idle loop, effectively halting that CPU.
ok deraadt@, miod@
|
#
475bef44 |
| 05-Oct-2009 |
deraadt <deraadt@openbsd.org> |
Don't drop the big lock at the end of exit1(), but move it into the middle of sched_exit(). This means that cpu_exit() and whatever it does (for instance calling free(), as well as the deadproc p_ha
Don't drop the big lock at the end of exit1(), but move it into the middle of sched_exit(). This means that cpu_exit() and whatever it does (for instance calling free(), as well as the deadproc p_hash handling are now locked as well. This may have been one of the causes of the reaper panics, especially with rthread patches... which were terminating a lot of threads very quickly onto the deadproc p_hash list. ok kurt kettenis miod
show more ...
|
#
43311cbb |
| 22-Apr-2009 |
art <art@openbsd.org> |
When starting up idle, explicitly set p_cpu and the peg flag for the idle proc. p_cpu might be necessary in the future and pegging is just to be extra safe (although we'll be horribly broken if the i
When starting up idle, explicitly set p_cpu and the peg flag for the idle proc. p_cpu might be necessary in the future and pegging is just to be extra safe (although we'll be horribly broken if the idle proc ever ends up where that flag is checked).
show more ...
|
#
25a90001 |
| 20-Apr-2009 |
art <art@openbsd.org> |
Make pegging a proc work when there are idle cpus that are looking for something to do. Walk the highest priority queue looking for a proc to steal and skip those that are pegged.
We could consider
Make pegging a proc work when there are idle cpus that are looking for something to do. Walk the highest priority queue looking for a proc to steal and skip those that are pegged.
We could consider walking the other queues in the future too, but this should do for now.
kettenis@ guenther@ ok
show more ...
|
#
7c565ebf |
| 14-Apr-2009 |
art <art@openbsd.org> |
Some tweaks to the cpu affinity code. - Split up choosing of cpu between fork and "normal" cases. Fork is very different and should be treated as such. - Instead of implicitly choosing a cpu in
Some tweaks to the cpu affinity code. - Split up choosing of cpu between fork and "normal" cases. Fork is very different and should be treated as such. - Instead of implicitly choosing a cpu in setrunqueue, do it outside where it actually makes sense. - Just because a cpu is marked as idle doesn't mean it will be soon. There could be a thundering herd effect if we call wakeup from an interrupt handler, so subtract cpus with queued processes when deciding which cpu is actually idle. - some simplifications allowed by the above.
kettenis@ ok (except one bugfix that was not in the intial diff)
show more ...
|
#
6026e1a6 |
| 03-Apr-2009 |
art <art@openbsd.org> |
sched_peg_curproc_to_cpu() - function to force a proc to stay on a cpu forever.
|
#
7035ad6b |
| 23-Mar-2009 |
art <art@openbsd.org> |
Processor affinity for processes. - Split up run queues so that every cpu has one. - Make setrunqueue choose the cpu where we want to make this process runnable (this should be refined and less
Processor affinity for processes. - Split up run queues so that every cpu has one. - Make setrunqueue choose the cpu where we want to make this process runnable (this should be refined and less brutal in the future). - When choosing the cpu where we want to run, make some kind of educated guess where it will be best to run (very naive right now). Other: - Set operations for sets of cpus. - load average calculations per cpu. - sched_is_idle() -> curcpu_is_idle()
tested, debugged and prodded by many@
show more ...
|
#
935ea7a7 |
| 06-Nov-2008 |
deraadt <deraadt@openbsd.org> |
oops
|
#
62736b27 |
| 06-Nov-2008 |
deraadt <deraadt@openbsd.org> |
panic if cpu_switchto() returns from a dead process
|
#
c10f2b41 |
| 12-Jun-2008 |
deraadt <deraadt@openbsd.org> |
Bring biomem diff back into the tree after the nfs_bio.c fix went in. ok thib beck art
|
#
e9e52ee3 |
| 11-Jun-2008 |
deraadt <deraadt@openbsd.org> |
back out biomem diff since it is not right yet. Doing very large file copies to nfsv2 causes the system to eventually peg the console. On the console ^T indicates that the load is increasing rapidly
back out biomem diff since it is not right yet. Doing very large file copies to nfsv2 causes the system to eventually peg the console. On the console ^T indicates that the load is increasing rapidly, ddb indicates many calls to getbuf, there is some very slow nfs traffic making none (or extremely slow) progress. Eventually some machines seize up entirely.
show more ...
|
#
30ab7dc4 |
| 10-Jun-2008 |
beck <beck@openbsd.org> |
Buffer cache revamp
1) remove multiple size queues, introduced as a stopgap. 2) decouple pages containing data from their mappings 3) only keep buffers mapped when they actually have to be mapped
Buffer cache revamp
1) remove multiple size queues, introduced as a stopgap. 2) decouple pages containing data from their mappings 3) only keep buffers mapped when they actually have to be mapped (right now, this is when buffers are B_BUSY) 4) New functions to make a buffer busy, and release the busy flag (buf_acquire and buf_release) 5) Move high/low water marks and statistics counters into a structure 6) Add a sysctl to retrieve buffer cache statistics
Tested in several variants and beat upon by bob and art for a year. run accidentally on henning's nfs server for a few months...
ok deraadt@, krw@, art@ - who promises to be around to deal with any fallout
show more ...
|