projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This commit was generated by cvs2svn to track changes on a CVS vendor
[unix-history]
/
sys
/
vm
/
vm_glue.c
diff --git
a/sys/vm/vm_glue.c
b/sys/vm/vm_glue.c
index
4ba331f
..
bd2fd07
100644
(file)
--- a/
sys/vm/vm_glue.c
+++ b/
sys/vm/vm_glue.c
@@
-77,7
+77,6
@@
#include "machine/stdarg.h"
extern char kstack[];
#include "machine/stdarg.h"
extern char kstack[];
-extern int vm_pageout_free_min;
int avefree = 0; /* XXX */
int readbuffers = 0; /* XXX allow kgdb to read kernel buffer pool */
/* vm_map_t upages_map; */
int avefree = 0; /* XXX */
int readbuffers = 0; /* XXX allow kgdb to read kernel buffer pool */
/* vm_map_t upages_map; */
@@
-160,7
+159,6
@@
vslock(addr, len)
u_int len;
{
vm_map_pageable(&curproc->p_vmspace->vm_map, trunc_page(addr),
u_int len;
{
vm_map_pageable(&curproc->p_vmspace->vm_map, trunc_page(addr),
- /* round_page(addr+len-1), FALSE); */
round_page(addr+len), FALSE);
}
round_page(addr+len), FALSE);
}
@@
-299,8
+297,8
@@
vm_init_limits(p)
tmp = ((2 * vm_page_free_count) / 3) - 32;
if (vm_page_free_count < 512)
tmp = vm_page_free_count;
tmp = ((2 * vm_page_free_count) / 3) - 32;
if (vm_page_free_count < 512)
tmp = vm_page_free_count;
- p->p_rlimit[RLIMIT_RSS].rlim_cur = p
->p_rlimit[RLIMIT_RSS].rlim_max =
-
ptoa(tmp)
;
+ p->p_rlimit[RLIMIT_RSS].rlim_cur = p
toa(tmp);
+
p->p_rlimit[RLIMIT_RSS].rlim_max = RLIM_INFINITY
;
}
#include "../vm/vm_pageout.h"
}
#include "../vm/vm_pageout.h"
@@
-455,6
+453,7
@@
noswap:
#define swappable(p) \
(((p)->p_flag & (STRC|SSYS|SLOAD|SLOCK|SKEEP|SWEXIT|SPHYSIO)) == SLOAD)
#define swappable(p) \
(((p)->p_flag & (STRC|SSYS|SLOAD|SLOCK|SKEEP|SWEXIT|SPHYSIO)) == SLOAD)
+extern int vm_pageout_free_min;
/*
* Swapout is driven by the pageout daemon. Very simple, we find eligible
* procs and unwire their u-areas. We try to always "swap" at least one
/*
* Swapout is driven by the pageout daemon. Very simple, we find eligible
* procs and unwire their u-areas. We try to always "swap" at least one
@@
-486,7
+485,7
@@
swapout_threads()
continue;
switch (p->p_stat) {
case SRUN:
continue;
switch (p->p_stat) {
case SRUN:
- if (p->p_pri <
= PUSER) /* possible deadlock unless this check */
+ if (p->p_pri <
PUSER)
continue;
if ((tpri = p->p_time + p->p_nice * 8) > outpri2) {
outp2 = p;
continue;
if ((tpri = p->p_time + p->p_nice * 8) > outpri2) {
outp2 = p;
@@
-496,9
+495,9
@@
swapout_threads()
case SSLEEP:
case SSTOP:
case SSLEEP:
case SSTOP:
- if (p->p_pri <= PRIBIO)
/* possible deadlock unless this check */
+ if (p->p_pri <= PRIBIO)
continue;
continue;
- if (p->p_slptime > maxslp
|| p->p_pri == PWAIT
) {
+ if (p->p_slptime > maxslp) {
swapout(p);
didswap++;
} else if ((tpri = p->p_slptime + p->p_nice * 8) > outpri) {
swapout(p);
didswap++;
} else if ((tpri = p->p_slptime + p->p_nice * 8) > outpri) {
@@
-515,9
+514,9
@@
swapout_threads()
* it (UPAGES pages).
*/
if (didswap == 0 && (swapinreq &&
* it (UPAGES pages).
*/
if (didswap == 0 && (swapinreq &&
- vm_page_free_count <=
(vm_page_free_reserved + UPAGES)
)) {
+ vm_page_free_count <=
vm_pageout_free_min
)) {
if ((p = outp) == 0 &&
if ((p = outp) == 0 &&
- (vm_page_free_count <
vm_page_free_reserved
))
+ (vm_page_free_count <
= vm_pageout_free_min
))
p = outp2;
#ifdef DEBUG
if (swapdebug & SDB_SWAPOUT)
p = outp2;
#ifdef DEBUG
if (swapdebug & SDB_SWAPOUT)
@@
-528,6
+527,7
@@
swapout_threads()
didswap = 1;
}
}
didswap = 1;
}
}
+
if (didswap) {
if (swapinreq)
wakeup((caddr_t)&proc0);
if (didswap) {
if (swapinreq)
wakeup((caddr_t)&proc0);