CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2023/08/11 16:02:50
Modified files:
sys/kern : sched_bsd.c kern_sched.c kern_clockintr.c
kern_clock.c
sys/sys : sched.h
Log message:
hardclock(9), roundrobin: make roundrobin() an independent clock interrupt
- Remove the roundrobin() call from hardclock(9).
- Revise roundrobin() to make it a valid clock interrupt callback.
It is still periodic and it still runs at one tenth of the hardclock
frequency.
- Account for multiple expirations in roundrobin(): if two or more
roundrobin periods have elapsed, set SPCF_SHOULDYIELD on the running
thread immediately to simulate normal behavior.
- Each schedstate_percpu has its own roundrobin() handle, spc_roundrobin.
spc_roundrobin is started/advanced during clockintr_cpu_init().
Intervals elapsed across suspend/resume are discarded.
- rrticks_init and schedstate_percpu.spc_rrticks are now useless:
delete them.
Tweaked by mpi@. With input from mpi@ and claudio@.
Thread: https://marc.info/?l=openbsd-tech&m=169127381314651&w=2
ok mpi@ claudio@