schedcpu, uvm_meter(9): make uvm_meter() an independent timeout
authorcheloha <cheloha@openbsd.org>
Tue, 20 Jun 2023 16:30:30 +0000 (16:30 +0000)
committercheloha <cheloha@openbsd.org>
Tue, 20 Jun 2023 16:30:30 +0000 (16:30 +0000)
commit71d823ace2523fb9fee2d1ab9b4d92a18d3f5714
tree8193b667811f9f4bfa7628576a96ba11616923ee
parent43e70bb47b84874dbf5bedf42379b789cda2b076
schedcpu, uvm_meter(9): make uvm_meter() an independent timeout

uvm_meter(9) should not base its periodic uvm_loadav() call on the UTC
clock.  It also no longer needs to periodically wake up proc0 because
proc0 doesn't do any work.  schedcpu() itself may change or go away,
but as kettenis@ notes we probably can't completely remove the concept
of a "load average" from OpenBSD, given its long Unix heritage.

So, (1) remove the uvm_meter() call from schedcpu(), (2) make
uvm_meter() an independent timeout started alongside schedcpu() during
scheduler_start(), and (3) delete the vestigial periodic proc0 wakeup.

With input from deraadt@, kettenis@, and claudio@.  deraadt@ cautions
that this change may confuse administrators who hold the load average
in high regard.

Thread: https://marc.info/?l=openbsd-tech&m=168710929409153&w=2

general agreement with this direction from kettenis@
ok claudio@
share/man/man9/uvm_init.9
sys/kern/sched_bsd.c
sys/uvm/uvm_extern.h
sys/uvm/uvm_meter.c