summaryrefslogtreecommitdiff
path: root/sys/src/9/port/proc.c
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 /sys/src/9/port/proc.c
parent04b8539ee29154c7455027c4cae457db79ad8fb7 (diff)
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.
Diffstat (limited to 'sys/src/9/port/proc.c')
-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++;