[Crash-utility] Running idle threads show wrong CPU numbers

Dave Anderson anderson at redhat.com
Wed Feb 10 19:56:55 UTC 2010



----- "Michael Holzheu" <holzheu at linux.vnet.ibm.com> wrote:

> The following shows the output of "bt -a" without the patch:
> 
> PID: 0      TASK: 18d38340          CPU: 2   COMMAND: "swapper"
> bt: invalid kernel virtual address: ffffffffffffc000  type: "async_stack"
> 
> PID: 0      TASK: 18d40440          CPU: 3   COMMAND: "swapper"
> bt: invalid kernel virtual address: ffffffffffffc000  type: "async_stack"
> 
> We can't leave it like that. With my patch at least we get a correct
> stack backtrace:
> 
> PID: 0      TASK: 18d38340          CPU: 2   COMMAND: "swapper"
>  #0 [18d3feb8] ret_from_fork at 117e12

OK, fair enough..  ;-)

> 
> How is the output of a backtrace of offline CPUs on other
> architectures?
 
Well, none of the other arches have anything like that "lowcore" business,
so they work like any other blocked task, although that may be somewhat
dumpfile-type-dependent.  I did check an i386, and it actually showed
a backtrace that passed through cpu_exit_clear() called from cpu_idle(),
via the inlined play_dead():

cpu_idle (void)
{
       ...
                if (cpu_is_offline(cpu))
                        play_dead();
        }
}

Anyway, queued for the next release.  Sorry for keeping you late!

Dave




More information about the Crash-utility mailing list