Include <sys/vmmeter.h> directly instead of relying on it being
authormpi <mpi@openbsd.org>
Tue, 6 May 2014 11:50:13 +0000 (11:50 +0000)
committermpi <mpi@openbsd.org>
Tue, 6 May 2014 11:50:13 +0000 (11:50 +0000)
pulled by <uvm/uvm_extern.h> and turn uvm_total() into a private
function.

The preferred way to get memory stats is through the VM_UVMEXP
sysctl(3) since VM_METER is just a wrapper on top of it.  In the
kernel, use `uvmexp' directly instead of uvm_total().

This change does not remove <sys/vmmeter.h> from <uvm/uvm_extern.h>
to give some more time to port maintainers to fix their ports.

ok guenther@ as part of a larger diff.

sys/arch/amd64/amd64/fpu.c
sys/kern/kern_fork.c
sys/miscfs/procfs/procfs_vfsops.c
sys/uvm/uvm_extern.h
sys/uvm/uvm_meter.c

index fbc781a..0882c4b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: fpu.c,v 1.28 2014/03/29 18:09:28 guenther Exp $       */
+/*     $OpenBSD: fpu.c,v 1.29 2014/05/06 11:50:13 mpi Exp $    */
 /*     $NetBSD: fpu.c,v 1.1 2003/04/26 18:39:28 fvdl Exp $     */
 
 /*-
@@ -40,7 +40,6 @@
 #include <sys/user.h>
 #include <sys/ioctl.h>
 #include <sys/device.h>
-#include <sys/vmmeter.h>
 #include <sys/signalvar.h>
 
 #include <uvm/uvm_extern.h>
index b2ff555..adbabb3 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: kern_fork.c,v 1.165 2014/05/04 05:03:26 guenther Exp $        */
+/*     $OpenBSD: kern_fork.c,v 1.166 2014/05/06 11:50:14 mpi Exp $     */
 /*     $NetBSD: kern_fork.c,v 1.29 1996/02/09 18:59:34 christos Exp $  */
 
 /*
@@ -48,6 +48,7 @@
 #include <sys/resourcevar.h>
 #include <sys/signalvar.h>
 #include <sys/vnode.h>
+#include <sys/vmmeter.h>
 #include <sys/file.h>
 #include <sys/acct.h>
 #include <sys/ktrace.h>
index c1d2e30..21c008b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: procfs_vfsops.c,v 1.29 2013/04/15 15:32:19 jsing Exp $        */
+/*     $OpenBSD: procfs_vfsops.c,v 1.30 2014/05/06 11:50:14 mpi Exp $  */
 /*     $NetBSD: procfs_vfsops.c,v 1.25 1996/02/09 22:40:53 christos Exp $      */
 
 /*
@@ -169,13 +169,10 @@ procfs_start(struct mount *mp, int flags, struct proc *p)
 int
 procfs_statfs(struct mount *mp, struct statfs *sbp, struct proc *p)
 {
-       struct vmtotal  vmtotals;
-
-       uvm_total(&vmtotals);
        sbp->f_bsize = PAGE_SIZE;
        sbp->f_iosize = PAGE_SIZE;
-       sbp->f_blocks = vmtotals.t_vm;
-       sbp->f_bfree = vmtotals.t_vm - vmtotals.t_avm;
+       sbp->f_blocks = uvmexp.npages - uvmexp.free + uvmexp.swpginuse;
+       sbp->f_bfree = uvmexp.npages - uvmexp.free - uvmexp.active;
        sbp->f_bavail = 0;
        sbp->f_files = maxprocess;              /* approx */
        sbp->f_ffree = maxprocess - nprocesses; /* approx */
index d6eae9c..4dd4ee8 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: uvm_extern.h,v 1.113 2014/05/03 22:44:36 guenther Exp $       */
+/*     $OpenBSD: uvm_extern.h,v 1.114 2014/05/06 11:50:14 mpi Exp $    */
 /*     $NetBSD: uvm_extern.h,v 1.57 2001/03/09 01:02:12 chs Exp $      */
 
 /*
@@ -484,7 +484,6 @@ struct loadavg;
 struct proc;
 struct pmap;
 struct vmspace;
-struct vmtotal;
 struct mount;
 struct vnode;
 struct core;
@@ -678,7 +677,6 @@ void                        uvmspace_share(struct proc *, struct proc *);
 void                   uvm_meter(void);
 int                    uvm_sysctl(int *, u_int, void *, size_t *, 
                                void *, size_t, struct proc *);
-void                   uvm_total(struct vmtotal *);
 
 /* uvm_mmap.c */
 int                    uvm_mmap(vm_map_t, vaddr_t *, vsize_t,
index a4ea174..2c0f5c4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: uvm_meter.c,v 1.31 2014/04/13 23:14:15 tedu Exp $     */
+/*     $OpenBSD: uvm_meter.c,v 1.32 2014/05/06 11:50:14 mpi Exp $      */
 /*     $NetBSD: uvm_meter.c,v 1.21 2001/07/14 06:36:03 matt Exp $      */
 
 /*
@@ -45,7 +45,7 @@
 #include <sys/proc.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
-#include <uvm/uvm_extern.h>
+#include <sys/vmmeter.h>
 #include <sys/sysctl.h>
 #include <sys/exec.h>
 
@@ -79,10 +79,9 @@ static fixpt_t cexp[3] = {
        0.9944598480048967 * FSCALE,    /* exp(-1/180) */
 };
 
-/*
- * prototypes
- */
+
 static void uvm_loadav(struct loadavg *);
+void uvm_total(struct vmtotal *);
 
 /*
  * uvm_meter: calculate load average and wake up the swapper (if needed)