bt -E will search all irq stacks and exception stacks for possible exception frames. With this patch offline cpus will be hiden.
The original output will be like: <cut> crash> bt -E CPU 0 IRQ STACK: (none found) CPU 1 IRQ STACK: (none found) CPU 2 IRQ STACK: (none found) CPU 3 IRQ STACK: (none found) ... CPU 2 STACKFAULT EXCEPTION STACK: (none found) CPU 2 DOUBLEFAULT EXCEPTION STACK: (none found) CPU 2 NMI EXCEPTION STACK: (none found) CPU 2 DEBUG EXCEPTION STACK: (none found) CPU 2 MCE EXCEPTION STACK: (none found) ... <cut> With data of offline cpu hiden, the output is like: <cut> crash> bt -E CPU 0 IRQ STACK: (none found) CPU 1 IRQ STACK: (none found) CPU 2 IRQ STACK: <OFFLINE> CPU 3 IRQ STACK: (none found) ... CPU 2 STACKFAULT EXCEPTION STACK: <OFFLINE> CPU 2 DOUBLEFAULT EXCEPTION STACK: <OFFLINE> CPU 2 NMI EXCEPTION STACK: <OFFLINE> CPU 2 DEBUG EXCEPTION STACK: <OFFLINE> CPU 2 MCE EXCEPTION STACK: <OFFLINE> ... <cut> Signed-off-by: Qiao Nuohan <[email protected]> --- x86_64.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/x86_64.c b/x86_64.c index 9aa6432..19f2d48 100755 --- a/x86_64.c +++ b/x86_64.c @@ -2348,7 +2348,14 @@ x86_64_eframe_search(struct bt_info *bt) if (ms->stkinfo.ibase[c] == 0) break; bt->hp->esp = ms->stkinfo.ibase[c]; - fprintf(fp, "CPU %d IRQ STACK:\n", c); + fprintf(fp, "CPU %d IRQ STACK:", c); + + if (hide_offline_cpu(c)) { + fprintf(fp, " <OFFLINE>\n\n"); + continue; + } else + fprintf(fp, "\n"); + if ((cnt = x86_64_eframe_search(bt))) fprintf(fp, "\n"); else @@ -2360,8 +2367,15 @@ x86_64_eframe_search(struct bt_info *bt) if (ms->stkinfo.ebase[c][i] == 0) break; bt->hp->esp = ms->stkinfo.ebase[c][i]; - fprintf(fp, "CPU %d %s EXCEPTION STACK:\n", + fprintf(fp, "CPU %d %s EXCEPTION STACK:", c, x86_64_exception_stacks[i]); + + if (hide_offline_cpu(c)) { + fprintf(fp, " <OFFLINE>\n\n"); + continue; + } else + fprintf(fp, "\n"); + if ((cnt = x86_64_eframe_search(bt))) fprintf(fp, "\n"); else -- 1.8.5.3 -- Crash-utility mailing list [email protected] https://www.redhat.com/mailman/listinfo/crash-utility
