summaryrefslogtreecommitdiff
path: root/share/man/man9
diff options
context:
space:
mode:
authorScott Soule Cheloha <cheloha@cvs.openbsd.org>2023-06-20 16:30:31 +0000
committerScott Soule Cheloha <cheloha@cvs.openbsd.org>2023-06-20 16:30:31 +0000
commit237f5b65791baccc19d9b706a42e06d5b9574cb9 (patch)
treec5807d7fe5384765dc1830460fb35a1b08c814ec /share/man/man9
parent2484dfccb69ff5f1e12b2b83bf99a5af729f1d35 (diff)
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@
Diffstat (limited to 'share/man/man9')
-rw-r--r--share/man/man9/uvm_init.98
1 files changed, 4 insertions, 4 deletions
diff --git a/share/man/man9/uvm_init.9 b/share/man/man9/uvm_init.9
index 2ef1769b091..636a16a13b3 100644
--- a/share/man/man9/uvm_init.9
+++ b/share/man/man9/uvm_init.9
@@ -1,4 +1,4 @@
-.\" $OpenBSD: uvm_init.9,v 1.5 2023/05/21 05:11:38 jmc Exp $
+.\" $OpenBSD: uvm_init.9,v 1.6 2023/06/20 16:30:30 cheloha Exp $
.\" $NetBSD: uvm.9,v 1.14 2000/06/29 06:08:44 mrg Exp $
.\"
.\" Copyright (c) 1998 Matthew R. Green
@@ -28,7 +28,7 @@
.\" XXX this manual sets nS to 1 or 0 in the description, to obtain
.\" synopsis-like function prototypes. any better way?
.\"
-.Dd $Mdocdate: May 21 2023 $
+.Dd $Mdocdate: June 20 2023 $
.Dt UVM_INIT 9
.Os
.Sh NAME
@@ -168,7 +168,7 @@ argument is ignored.
.Ft void
.Fn uvm_kernacc "caddr_t addr" "size_t len" "int rw"
.Ft void
-.Fn uvm_meter
+.Fn uvm_meter "void *"
.Ft int
.Fn uvm_sysctl "int *name" "u_int namelen" "void *oldp" "size_t *oldlenp" "void *newp " "size_t newlen" "struct proc *p"
.Ft int
@@ -212,7 +212,7 @@ access, in the kernel address space.
.Pp
The
.Fn uvm_meter
-function calculates the load average and wakes up the swapper if necessary.
+function periodically recomputes the load average.
.Pp
The
.Fn uvm_sysctl