Make the kernel smaller with at worst a neutral effect on perf by

de-inlining some VM calls.  (Actually, I measured a small improvement.)
This commit is contained in:
dyson 1996-11-28 23:15:07 +00:00
parent 0d4ef123d5
commit a5cef89b1e
3 changed files with 34 additions and 34 deletions

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* from: @(#)vm_page.c 7.4 (Berkeley) 5/7/91 * 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); 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: * vm_page_activate:
* *

View File

@ -65,7 +65,7 @@
* any improvements or extensions that they make and grant Carnegie the * any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes. * rights to redistribute these changes.
* *
* $Id: vm_pageout.c,v 1.85 1996/09/08 20:44:48 dyson Exp $ * $Id: vm_pageout.c,v 1.86 1996/09/28 03:33:40 dyson Exp $
*/ */
/* /*
@ -1015,6 +1015,15 @@ vm_pageout()
} }
} }
void
pagedaemon_wakeup()
{
if (!vm_pages_needed && curproc != pageproc) {
vm_pages_needed++;
wakeup(&vm_pages_needed);
}
}
#if !defined(NO_SWAPPING) #if !defined(NO_SWAPPING)
static void static void
vm_req_vmdaemon() vm_req_vmdaemon()

View File

@ -61,7 +61,7 @@
* any improvements or extensions that they make and grant Carnegie the * any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes. * rights to redistribute these changes.
* *
* $Id: vm_pageout.h,v 1.16 1995/11/20 12:19:22 phk Exp $ * $Id: vm_pageout.h,v 1.17 1995/11/21 12:55:26 bde Exp $
*/ */
#ifndef _VM_VM_PAGEOUT_H_ #ifndef _VM_VM_PAGEOUT_H_
@ -91,38 +91,9 @@ extern int vm_pageout_pages_needed;
* Signal pageout-daemon and wait for it. * Signal pageout-daemon and wait for it.
*/ */
static void pagedaemon_wakeup __P((void)); extern void pagedaemon_wakeup __P((void));
static inline void
pagedaemon_wakeup()
{
if (!vm_pages_needed && curproc != pageproc) {
vm_pages_needed++;
wakeup(&vm_pages_needed);
}
}
#define VM_WAIT vm_wait() #define VM_WAIT vm_wait()
extern void vm_wait __P((void));
static void vm_wait __P((void));
static inline void
vm_wait()
{
int s;
s = splhigh();
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);
}
#ifdef KERNEL #ifdef KERNEL
void vm_pageout_page __P((vm_page_t, vm_object_t)); void vm_pageout_page __P((vm_page_t, vm_object_t));