1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-14 10:09:48 +00:00

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:
John Dyson 1996-11-28 23:15:07 +00:00
parent 48525b15aa
commit e0c5a895f1
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=20007
3 changed files with 34 additions and 34 deletions

View File

@ -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:
*

View File

@ -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()

View File

@ -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));