summaryrefslogtreecommitdiff
path: root/sys/src/9/port/swap.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-07-09 00:01:50 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2015-07-09 00:01:50 +0200
commit8ed25f24b7831eab394f14697766d55065b18822 (patch)
tree58fade4cfccb0e0e081e7687a3860406c80d54e1 /sys/src/9/port/swap.c
parentfcb9abccbbc73a4f449d55c2c7fb369db2ad139d (diff)
kernel: various cleanups of imagereclaim(), pagereclaim(), freepages(), putimage()
imagereclaim(), pagereclaim(): - move imagereclaim() and pagereclaim() declarations to portfns.h - consistently use ulong type for page counts - name number of pages to free "pages" instead of "min" - check for pages == 0 on entry freepages(): - move pagechaindone() call to wakeup newpage() consumers inside palloc critical section. putimage(): - use long type for refcount
Diffstat (limited to 'sys/src/9/port/swap.c')
-rw-r--r--sys/src/9/port/swap.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/sys/src/9/port/swap.c b/sys/src/9/port/swap.c
index 73d12345a..f2966449b 100644
--- a/sys/src/9/port/swap.c
+++ b/sys/src/9/port/swap.c
@@ -118,25 +118,22 @@ kickpager(void)
kproc("pager", pager, 0);
}
-extern int pagereclaim(Image*,int); /* page.c */
-extern int imagereclaim(int); /* segment.c */
-
static int
reclaim(void)
{
- int n;
+ ulong np;
for(;;){
- if((n = pagereclaim(&fscache, 1000)) > 0) {
- if(0) print("reclaim: %d fscache\n", n);
- } else if((n = pagereclaim(&swapimage, 1000)) > 0) {
- if(0) print("reclaim: %d swap\n", n);
- } else if((n = imagereclaim(1000)) > 0) {
- if(0) print("reclaim: %d image\n", n);
+ if((np = pagereclaim(&fscache, 1000)) > 0) {
+ if(0) print("reclaim: %lud fscache\n", np);
+ } else if((np = pagereclaim(&swapimage, 1000)) > 0) {
+ if(0) print("reclaim: %lud swap\n", np);
+ } else if((np = imagereclaim(1000)) > 0) {
+ if(0) print("reclaim: %lud image\n", np);
}
if(!needpages(nil))
return 1; /* have pages, done */
- if(n == 0)
+ if(np == 0)
return 0; /* didnt reclaim, need to swap */
sched();
}