History log of /openbsd-src/sys/kern/kern_sched.c (Results 76 – 100 of 103)
Revision Date Author Comments
# 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 ...


12345