summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2017-06-02 17:02:43 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2017-06-02 17:02:43 +0200
commit3d1908d762c6e91e0b6fe2e235e85bdf397d092d (patch)
tree40d29e8e282fde69d2ce7049021baf16e081e817
parent04b8539ee29154c7455027c4cae457db79ad8fb7 (diff)
downloadplan9front-3d1908d762c6e91e0b6fe2e235e85bdf397d092d.tar.xz
kernel: don't preempt pager during fscache reclaim
the fscache image is the main source for pages once the page freelist got exhausted, so delay scheduling until they release the fscache lock.
-rw-r--r--sys/src/9/port/proc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/src/9/port/proc.c b/sys/src/9/port/proc.c
index e9a299c20..5a98ac747 100644
--- a/sys/src/9/port/proc.c
+++ b/sys/src/9/port/proc.c
@@ -141,6 +141,7 @@ sched(void)
if(up->state != Moribund)
if(up->delaysched < 20
|| palloc.Lock.p == up
+ || fscache.Lock.p == up
|| procalloc.Lock.p == up){
up->delaysched++;
delayedscheds++;