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.
This commit is contained in:
parent
21b70c782a
commit
ed4c812765
3 changed files with 5 additions and 15 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ squidboy(Apic* apic)
|
|||
unlock(&active);
|
||||
|
||||
while(!active.thunderbirdsarego)
|
||||
idlehands();
|
||||
microdelay(100);
|
||||
|
||||
schedinit();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue