| plan 9 kernel history: overview | file list | diff list |
1994/0729/port/proc.c (diff list | history)
| 1994/0728/sys/src/9/port/proc.c:108,120 – 1994/0729/sys/src/9/port/proc.c:108,114 (short | long | prev | next) | ||
|
Faster anyready.
rsc Mon Mar 20 17:58:21 2006 | ||
| 1994/0321 | int anyready(void) { | |
| 1994/0728 |
| |
| 1994/0729 | return nrdy; | |
| 1990/1227 | } | |
| 1990/0227 | void | |
| 1994/0728/sys/src/9/port/proc.c:132,138 – 1994/0729/sys/src/9/port/proc.c:126,131 | ||
| 1994/0728 | } else p->priority = 1; } | |
| 1991/0420 | ||
| 1994/0728 | lock(runq); | |
| 1994/0728/sys/src/9/port/proc.c:158,189 – 1994/0729/sys/src/9/port/proc.c:151,184 | ||
| 1990/0227 | loop: | |
| 1994/0728 | /* | |
| 1994/0729 | * find a process at level 0 (programs from '/' file system), * one that last ran on this processor (affinity), * or one that hasn't moved in a while (load balancing). | |
| 1994/0728 | */ | |
| 1992/0603 | spllo(); | |
| 1994/0728 |
| |
| 1990/0227 |
| |
| 1994/0729 | for(;;){ for(rq = runq; rq < &runq[Nrq]; rq++){ if(rq->head == 0) continue; for(p = rq->head; p; p = p->rnext){ if(rq == runq || p->mp == m || m->ticks - p->movetime > HZ/2) goto found; } } } | |
| 1992/0622 | ||
| 1994/0729 | found: splhi(); | |
| 1994/0728 | lock(runq); | |
| 1991/0420 | ||
| 1994/0728 |
| |
| 1994/0729 | if(rq == runq || p->mp == m || m->ticks - p->movetime > HZ/2) | |
| 1994/0728 | break; l = p; } | |
| 1994/0728/sys/src/9/port/proc.c:205,210 – 1994/0729/sys/src/9/port/proc.c:200,207 | ||
| 1994/0728 | unlock(runq); | |
| 1993/1212 | ||
| 1990/0227 | p->state = Scheding; | |
| 1994/0729 | if(p->mp != m) p->movetime = m->ticks; | |
| 1994/0728 | p->mp = m; | |
| 1990/0227 | return p; } | |
| 1994/0728/sys/src/9/port/proc.c:261,266 – 1994/0729/sys/src/9/port/proc.c:258,264 | ||
| 1993/0501 | p->procctl = 0; p->notepending = 0; | |
| 1993/1204 | p->mp = 0; | |
| 1994/0729 | p->movetime = 0; | |
| 1993/0501 | memset(p->seg, 0, sizeof p->seg); p->pid = incref(&pidalloc); p->noteid = incref(¬eidalloc); | |