Pick the ac taking in account locality Reference: /n/patches.lsub.org/patch/getaclocal Date: Mon Jul 16 10:51:59 CES 2012 Signed-off-by: paurea@lsub.org --- /sys/src/nix/k10/tcore.c Thu Jul 12 10:53:54 2012 +++ /sys/src/nix/k10/tcore.c Sun Jul 15 16:44:59 2012 @@ -22,7 +22,7 @@ Mach* getac(Proc *p, int core) { - int i; + int i, j; Mach *mp; mp = nil; @@ -44,13 +44,15 @@ Found: mp->proc = p; }else{ - for(i = 0; i < MACHMAX; i++) - if((mp = sys->machptr[i]) != nil && mp->nixrole == NIXAC){ + for(i = 0; i < MACHMAX; i++){ + j = pickcore(p->color, i); + if((mp = sys->machptr[j]) != nil && mp->nixrole == NIXAC){ if(isbooting(mp)) continue; if(mp->proc == nil) goto Found; } + } error("not enough cores"); } unlock(&nixaclock);