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:
parent
0d4ef123d5
commit
a5cef89b1e
@ -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:
|
||||
*
|
||||
|
@ -65,7 +65,7 @@
|
||||
* any improvements or extensions that they make and grant Carnegie the
|
||||
* 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)
|
||||
static void
|
||||
vm_req_vmdaemon()
|
||||
|
@ -61,7 +61,7 @@
|
||||
* any improvements or extensions that they make and grant Carnegie the
|
||||
* 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_
|
||||
@ -91,38 +91,9 @@ extern int vm_pageout_pages_needed;
|
||||
* Signal pageout-daemon and wait for it.
|
||||
*/
|
||||
|
||||
static void pagedaemon_wakeup __P((void));
|
||||
static inline void
|
||||
pagedaemon_wakeup()
|
||||
{
|
||||
if (!vm_pages_needed && curproc != pageproc) {
|
||||
vm_pages_needed++;
|
||||
wakeup(&vm_pages_needed);
|
||||
}
|
||||
}
|
||||
|
||||
extern void pagedaemon_wakeup __P((void));
|
||||
#define VM_WAIT vm_wait()
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
extern void vm_wait __P((void));
|
||||
|
||||
#ifdef KERNEL
|
||||
void vm_pageout_page __P((vm_page_t, vm_object_t));
|
||||
|
Loading…
Reference in New Issue
Block a user