summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-01-13 23:18:25 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2016-01-13 23:18:25 +0100
commited4c8127658eec28f70947c738abb4b24244c909 (patch)
tree580e4378ea23d25ec14c6eef42751f2682313ce9 /sys
parent21b70c782a6c62abf959564534d83147065981d6 (diff)
pc/pc64: backing out new mp startup code (caused issues with ramnode)
apparently, this causes some quadcore ramnode vm to hang on boot, even tho all cores successfully started up and are operational. i suspect some side effect from timersinit()... this would also mean *notsc= would break it (syncclock() would continue)... its unclear. i'm reverting this for now until the problem is better understood.
Diffstat (limited to 'sys')
-rw-r--r--sys/src/9/pc/mp.c15
-rw-r--r--sys/src/9/pc/squidboy.c2
-rw-r--r--sys/src/9/pc64/squidboy.c3
3 files changed, 5 insertions, 15 deletions
diff --git a/sys/src/9/pc/mp.c b/sys/src/9/pc/mp.c
index ba341c5ca..e937c9391 100644
--- a/sys/src/9/pc/mp.c
+++ b/sys/src/9/pc/mp.c
@@ -196,7 +196,9 @@ mpinit(void)
ncpu = MAXMACH;
memmove((void*)APBOOTSTRAP, apbootstrap, sizeof(apbootstrap));
for(i=0; i<nelem(mpapic); i++){
- if((apic = mpapic[i]) == nil || apic->machno == 0 || apic->machno >= MAXMACH)
+ if((apic = mpapic[i]) == nil)
+ continue;
+ if(apic->machno >= MAXMACH)
continue;
if(ncpu <= 1)
break;
@@ -204,17 +206,6 @@ mpinit(void)
mpstartap(apic);
conf.nmach++;
ncpu--;
-
- if(!apic->online){
- print("LAPIC%d: cpu%d did not startup\n", i, apic->machno);
- continue;
- }
-
- /* update tscticks for ap's syncclock() */
- while(!active.machs[apic->machno]){
- if(arch->fastclock == tscticks)
- cycles(&m->tscticks);
- }
}
}
diff --git a/sys/src/9/pc/squidboy.c b/sys/src/9/pc/squidboy.c
index 5b10ea211..85c3992d1 100644
--- a/sys/src/9/pc/squidboy.c
+++ b/sys/src/9/pc/squidboy.c
@@ -34,7 +34,7 @@ squidboy(Apic* apic)
unlock(&active);
while(!active.thunderbirdsarego)
- idlehands();
+ microdelay(100);
schedinit();
}
diff --git a/sys/src/9/pc64/squidboy.c b/sys/src/9/pc64/squidboy.c
index 2646626b7..218f4971a 100644
--- a/sys/src/9/pc64/squidboy.c
+++ b/sys/src/9/pc64/squidboy.c
@@ -15,7 +15,6 @@ squidboy(Apic* apic)
mmuinit();
cpuidentify();
cpuidprint();
-
apic->online = 1;
coherence();
@@ -29,7 +28,7 @@ squidboy(Apic* apic)
unlock(&active);
while(!active.thunderbirdsarego)
- idlehands();
+ microdelay(100);
schedinit();
}