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.
|
* 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:
|
||||||
*
|
*
|
||||||
|
@ -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()
|
||||||
|
@ -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));
|
||||||
|
Loading…
Reference in New Issue
Block a user