summaryrefslogtreecommitdiff
path: root/sys/src/9/port/proc.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2018-09-18 00:53:05 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2018-09-18 00:53:05 +0200
commitbd49212b467c60d6d5e4e2eefc13ec88012ec785 (patch)
treef7df1378eb1aefa3177ef590d8e5cbb8367143dc /sys/src/9/port/proc.c
parente619a03c28a1bc979faeaa2853c58f94b5c3c5ad (diff)
kernel: fix livelock in rebalance (thanks Richard Miller)
Once a second rebalance() is called on cpu0 to adjust priorities, so cpu-bound processes won't lock others out. However it was only adjusting processes which were running on cpu0. This was observed to lead to livelock, eg when a higher-priority process spin-waits for a lock held by a lower priority one.
Diffstat (limited to 'sys/src/9/port/proc.c')
-rw-r--r--sys/src/9/port/proc.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/sys/src/9/port/proc.c b/sys/src/9/port/proc.c
index 5a530395f..4d5b98f6f 100644
--- a/sys/src/9/port/proc.c
+++ b/sys/src/9/port/proc.c
@@ -478,8 +478,6 @@ another:
p = rq->head;
if(p == nil)
continue;
- if(p->mp != MACHP(m->machno))
- continue;
if(pri == p->basepri)
continue;
updatecpu(p);