uvm_extern.h is the header people should be consuming. change a few uvm.h to uvm_extern.h.
a couple other sys .h headers included uvm when they don't need to. fix that. fix a few .c files that depended on getting headers from headers. also, simplify and move the bufcache adjustment code from sysctl to the vfs_bio.c where it fits nicer. Index: arch/i386/i386/machdep.c =================================================================== RCS file: /home/tedu/cvs/src/sys/arch/i386/i386/machdep.c,v retrieving revision 1.500 diff -u -r1.500 machdep.c --- arch/i386/i386/machdep.c 5 Jun 2011 19:41:07 -0000 1.500 +++ arch/i386/i386/machdep.c 20 Jun 2011 19:26:09 -0000 @@ -83,7 +83,6 @@ #include <sys/mbuf.h> #include <sys/msgbuf.h> #include <sys/mount.h> -#include <sys/vnode.h> #include <sys/device.h> #include <sys/extent.h> #include <sys/sysctl.h> @@ -101,6 +100,7 @@ #include <uvm/uvm_extern.h> #include <uvm/uvm_swap.h> +#include <uvm/uvm.h> #include <machine/bus.h> Index: kern/exec_subr.c =================================================================== RCS file: /home/tedu/cvs/src/sys/kern/exec_subr.c,v retrieving revision 1.28 diff -u -r1.28 exec_subr.c --- kern/exec_subr.c 14 Nov 2006 18:00:27 -0000 1.28 +++ kern/exec_subr.c 20 Jun 2011 19:22:34 -0000 @@ -41,7 +41,7 @@ #include <sys/mman.h> #include <sys/resourcevar.h> -#include <uvm/uvm.h> +#include <uvm/uvm_extern.h> #ifdef DEBUG /* Index: kern/init_main.c =================================================================== RCS file: /home/tedu/cvs/src/sys/kern/init_main.c,v retrieving revision 1.177 diff -u -r1.177 init_main.c --- kern/init_main.c 18 Apr 2011 21:44:56 -0000 1.177 +++ kern/init_main.c 20 Jun 2011 19:22:34 -0000 @@ -85,7 +85,7 @@ #include <machine/cpu.h> -#include <uvm/uvm.h> +#include <uvm/uvm_extern.h> #include <net/if.h> #include <net/raw_cb.h> Index: kern/kern_fork.c =================================================================== RCS file: /home/tedu/cvs/src/sys/kern/kern_fork.c,v retrieving revision 1.126 diff -u -r1.126 kern_fork.c --- kern/kern_fork.c 6 Jun 2011 17:05:46 -0000 1.126 +++ kern/kern_fork.c 20 Jun 2011 19:27:20 -0000 @@ -64,6 +64,7 @@ #include <uvm/uvm_extern.h> #include <uvm/uvm_map.h> +#include <uvm/uvm.h> int nprocs = 1; /* process 0 */ int randompid; /* when set to 1, pid's go random */ Index: kern/kern_sysctl.c =================================================================== RCS file: /home/tedu/cvs/src/sys/kern/kern_sysctl.c,v retrieving revision 1.203 diff -u -r1.203 kern_sysctl.c --- kern/kern_sysctl.c 9 Jun 2011 21:10:55 -0000 1.203 +++ kern/kern_sysctl.c 20 Jun 2011 19:22:34 -0000 @@ -565,22 +565,17 @@ return (sysctl_int(oldp, oldlenp, newp, newlen, &rthreads_enabled)); case KERN_CACHEPCT: { - u_int64_t dmapages; - int opct, pgs; - opct = bufcachepercent; + int newpct = bufcachepercent; error = sysctl_int(oldp, oldlenp, newp, newlen, - &bufcachepercent); + &newpct); if (error) return(error); - if (bufcachepercent > 90 || bufcachepercent < 5) { - bufcachepercent = opct; + if (newpct > 90 || newpct < 5) { return (EINVAL); } - dmapages = uvm_pagecount(&dma_constraint); - if (bufcachepercent != opct) { - pgs = bufcachepercent * dmapages / 100; - bufadjust(pgs); /* adjust bufpages */ - bufhighpages = bufpages; /* set high water mark */ + if (bufcachepercent != newpct) { + bufcachepercent = newpct; + bufadjustpct(); } return(0); } Index: kern/uipc_mbuf.c =================================================================== RCS file: /home/tedu/cvs/src/sys/kern/uipc_mbuf.c,v retrieving revision 1.157 diff -u -r1.157 uipc_mbuf.c --- kern/uipc_mbuf.c 4 May 2011 16:05:49 -0000 1.157 +++ kern/uipc_mbuf.c 20 Jun 2011 19:22:34 -0000 @@ -89,7 +89,6 @@ #include <machine/cpu.h> -#include <uvm/uvm.h> #include <uvm/uvm_extern.h> #ifdef DDB Index: kern/vfs_bio.c =================================================================== RCS file: /home/tedu/cvs/src/sys/kern/vfs_bio.c,v retrieving revision 1.130 diff -u -r1.130 vfs_bio.c --- kern/vfs_bio.c 5 Jun 2011 19:41:04 -0000 1.130 +++ kern/vfs_bio.c 20 Jun 2011 19:22:34 -0000 @@ -58,6 +58,7 @@ #include <sys/kernel.h> #include <uvm/uvm_extern.h> +#include <uvm/uvm.h> /* need dma_constraint */ #include <miscfs/specfs/specdev.h> @@ -119,6 +120,8 @@ struct proc *cleanerproc; int bd_req; /* Sleep point for cleaner daemon. */ +void bufadjust(int); + void bremfree(struct buf *bp) { @@ -322,6 +325,18 @@ tsleep(&needbuffer, PRIBIO, "needbuffer", 0); } splx(s); +} + +void +bufadjustpct(void) +{ + u_int64_t dmapages; + int pgs; + + dmapages = uvm_pagecount(&dma_constraint); + pgs = bufcachepercent * dmapages / 100; + bufadjust(pgs); /* adjust bufpages */ + bufhighpages = bufpages; /* set high water mark */ } /* Index: kern/vfs_biomem.c =================================================================== RCS file: /home/tedu/cvs/src/sys/kern/vfs_biomem.c,v retrieving revision 1.17 diff -u -r1.17 vfs_biomem.c --- kern/vfs_biomem.c 7 Apr 2011 19:07:42 -0000 1.17 +++ kern/vfs_biomem.c 20 Jun 2011 19:22:34 -0000 @@ -24,7 +24,6 @@ #include <sys/mount.h> #include <uvm/uvm_extern.h> -#include <uvm/uvm.h> vaddr_t buf_kva_start, buf_kva_end; int buf_needva; Index: sys/mount.h =================================================================== RCS file: /home/tedu/cvs/src/sys/sys/mount.h,v retrieving revision 1.103 diff -u -r1.103 mount.h --- sys/mount.h 5 Apr 2011 18:51:26 -0000 1.103 +++ sys/mount.h 20 Jun 2011 19:22:34 -0000 @@ -503,7 +503,7 @@ #define BUFPAGES_INACT (((bcstats.numcleanpages - buflowpages) < 0) ? 0 \ : bcstats.numcleanpages - buflowpages) extern int bufcachepercent; -extern void bufadjust(int); +extern void bufadjustpct(void); extern int bufbackoff(void); /* Index: sys/pipe.h =================================================================== RCS file: /home/tedu/cvs/src/sys/sys/pipe.h,v retrieving revision 1.13 diff -u -r1.13 pipe.h --- sys/pipe.h 21 Nov 2005 18:16:46 -0000 1.13 +++ sys/pipe.h 20 Jun 2011 19:22:34 -0000 @@ -27,7 +27,6 @@ #ifndef _KERNEL #include <sys/time.h> /* for struct timeval */ #include <sys/selinfo.h> /* for struct selinfo */ -#include <uvm/uvm_extern.h> /* for vm_page_t */ #include <machine/param.h> /* for PAGE_SIZE */ #endif /* _KERNEL */ Index: sys/user.h =================================================================== RCS file: /home/tedu/cvs/src/sys/sys/user.h,v retrieving revision 1.7 diff -u -r1.7 user.h --- sys/user.h 29 Jun 2010 20:48:50 -0000 1.7 +++ sys/user.h 20 Jun 2011 19:22:34 -0000 @@ -42,8 +42,6 @@ #include <sys/uio.h> #endif #include <sys/resourcevar.h> -#include <uvm/uvm_extern.h> /* XXX */ -#include <sys/sysctl.h> /* Index: sys/vnode.h =================================================================== RCS file: /home/tedu/cvs/src/sys/sys/vnode.h,v retrieving revision 1.109 diff -u -r1.109 vnode.h --- sys/vnode.h 5 Apr 2011 14:34:16 -0000 1.109 +++ sys/vnode.h 20 Jun 2011 19:23:55 -0000 @@ -40,7 +40,7 @@ #include <sys/selinfo.h> #include <sys/tree.h> -#include <uvm/uvm.h> +#include <uvm/uvm_extern.h> #include <uvm/uvm_vnode.h> /*