diff options
author | dyson <dyson@FreeBSD.org> | 1996-11-28 23:15:07 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1996-11-28 23:15:07 +0000 |
commit | f573ad0ab20bbee180db8815f148fc357a613915 (patch) | |
tree | 354ebdb4713949ffc413eb85282ebd836e32f1ac /sys/vm/vm_page.c | |
parent | a28111b089eb611a4c68bf4662eaa66b21032450 (diff) | |
download | FreeBSD-src-f573ad0ab20bbee180db8815f148fc357a613915.zip FreeBSD-src-f573ad0ab20bbee180db8815f148fc357a613915.tar.gz |
Make the kernel smaller with at worst a neutral effect on perf by
de-inlining some VM calls. (Actually, I measured a small improvement.)
Diffstat (limited to 'sys/vm/vm_page.c')
-rw-r--r-- | sys/vm/vm_page.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index ea0e139..b39660b 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)vm_page.c 7.4 (Berkeley) 5/7/91 - * $Id: vm_page.c,v 1.70 1996/11/05 04:19:08 dyson Exp $ + * $Id: vm_page.c,v 1.71 1996/11/17 02:38:31 dyson Exp $ */ /* @@ -874,6 +874,26 @@ vm_page_alloc(object, pindex, page_req) return (m); } +void +vm_wait() +{ + int s; + + s = splvm(); + if (curproc == pageproc) { + vm_pageout_pages_needed = 1; + tsleep(&vm_pageout_pages_needed, PSWP, "vmwait", 0); + } else { + if (!vm_pages_needed) { + vm_pages_needed++; + wakeup(&vm_pages_needed); + } + tsleep(&cnt.v_free_count, PVM, "vmwait", 0); + } + splx(s); +} + + /* * vm_page_activate: * |