linux-origin
[Top] [All Lists]

Re: Kernel hang ...

To: kanoj@xxxxxxxxxxxxxxxxxxx (Kanoj Sarcar)
Subject: Re: Kernel hang ...
From: sprasad@xxxxxxxxxxxxxxxxxxxx (Srinivasa Prasad Thirumalachar)
Date: Wed, 10 May 2000 11:12:24 -0700 (PDT)
Cc: ralf@xxxxxxxxxxx (Ralf Baechle), linux-origin@xxxxxxxxxxx
In-reply-to: <200005101751.KAA05291@xxxxxxxxxxxxxxxxxxx> from "Kanoj Sarcar" at May 10, 2000 10:51:41 AM
Sender: owner-linux-origin@xxxxxxxxxxx
According to Kanoj Sarcar ...
> 
> > 
> > I've verified that with just a single processor enabled the SMP kernel will
> > hang even earlier, right after the ``POSIX conformance testing'' printout.
> > 
> > Investigating ...
> > 
> >   Ralf
> > 
> 
> Depends on how you "disable" the other processors. Prom level disabling
> has not been tested at all, and I would suggest leaving that for a little

If you disable a cpu in the prom, the cpu is dead. It will not
interfere with anything. There are certain
datastructs etc in the prom that tell you this. vmlinux may want
to read them and setup initial data structs. 
Look into irix/kern/ml/SN/*.c for how irix does this.

> later (maybe next week), since it also ties in to processor virtual/physical
> numbering. 

This is also very important given that linux uses data structs indexed
on cpuid. Just like cnodeid and nasid, we have a compact cpu id and 
a calculated cpuid (nasid*NUMCPUSPERNODE) + CPUIDONNODE

Thanks
srinivasa

> 
> If you want to come up on a CONFIG_SMP kernel with just 1 processor,
> hack do_cpumask(), specifically, #if 0 out the code block
> 
>                         if (cpuid > *highest)
>                                 *highest = cpuid;
>                         /* Only let it join in if it's marked enabled */
>                         if (acpu->cpu_info.flags & KLINFO_ENABLE) {
>                                 CPUMASK_SETB(*boot_cpumask, cpuid);
>                                 cpus_found++;
>                         }
> 
> Kanoj
> 


<Prev in Thread] Current Thread [Next in Thread>