Hi, Tao
Thank you for helping with the review.
On Fri, Feb 20, 2026 at 4:03 PM Tao Liu <ltao(a)redhat.com> wrote:
Hi Lianbo,
I didn't fully understand the issue you are trying to fix.
On Fri, Feb 13, 2026 at 11:16 PM Lianbo Jiang <lijiang(a)redhat.com> wrote:
>
> Currently, when executing the "help -r" command on the aarch64
> architecture, only the register values of crashing cpu are displayed,
> but the register values of other cpus are not shown with the following
Do currently on arm64, only crashing cpu's registers value are saved
in vmcore, or all cpus' registers are saved?
They are stored in the vmcore, but only crashing cpu's registers values are
displayed, other
cpus register values are not shown. Currently, because crash tool only maps
online cpus and
does not map offline cpus(please refer to the crash tool code), this is not
expected.
My understanding, if only crashing cpu's registers value are
saved,
then the current crash output looks fine to me. But if all cpus'
registers are saved in vmcore, but only crashing cpu's registers are
outputted by crash, then it is a crash bug to me.
> messages:
>
> crash> help -r
> CPU 0:
> help: registers not collected for cpu 0
>
> CPU 1:
> X0: 4000000000000000 X1: ffffc8c40d453d30 X2: ffff37436ecd0000
> X3: ffffc8c40d475340 X4: 00000000000968a4 X5: 4000000000000000
> X6: 4000000000000000 X7: 7fffffffffffffff X8: 0000016f2a240000
> X9: ffffc8c40b0c64fc X10: 0000000000001000 X11: 00000000000000c0
> X12: 0000000000000000 X13: 0000000000000072 X14: 0000000000000072
> X15: 0000aaab0f98a320 X16: 0000000000000000 X17: 0000000000000000
> X18: 0000000000000000 X19: 0000000000000000 X20: 0000000000000000
> X21: ffffc8c40d475340 X22: ffffc8c40d460b80 X23: 00000000000000c0
> X24: 00000007bf68b1b0 X25: 00000007b9284000 X26: 00000007bf68b1a8
> X27: 00000007bbc95a40 X28: 00000007bbc6805a X29: ffffc8c40d453d80
> LR: ffffc8c40bebd5d8 SP: ffffc8c40d453d80 PC: ffffc8c40bebd5e8
> PSTATE: 60400005 FPVALID: 00000000
>
> CPU 2:
> help: registers not collected for cpu 2
>
> CPU 3:
> help: registers not collected for cpu 3
>
> crash> help -D
> ...
> num_prstatus_notes: 4
> notes[0]: 0
> notes[1]: dafa380 (NT_PRSTATUS)
> si.signo: 0 si.code: 0 si.errno: 0
> cursig: 0 sigpend: 0 sighold: 0
> pid: 0 ppid: 0 pgrp: 0 sid:0
> utime: 0.000000 stime: 0.000000
> cutime: 0.000000 cstime: 0.000000
> X0: 4000000000000000 X1: ffffc8c40d453d30 X2:
ffff37436ecd0000
> X3: ffffc8c40d475340 X4: 00000000000968a4 X5:
4000000000000000
> X6: 4000000000000000 X7: 7fffffffffffffff X8:
0000016f2a240000
> X9: ffffc8c40b0c64fc X10: 0000000000001000 X11:
00000000000000c0
> X12: 0000000000000000 X13: 0000000000000072 X14:
0000000000000072
> X15: 0000aaab0f98a320 X16: 0000000000000000 X17:
0000000000000000
> X18: 0000000000000000 X19: 0000000000000000 X20:
0000000000000000
> X21: ffffc8c40d475340 X22: ffffc8c40d460b80 X23:
00000000000000c0
> X24: 00000007bf68b1b0 X25: 00000007b9284000 X26:
00000007bf68b1a8
> X27: 00000007bbc95a40 X28: 00000007bbc6805a X29:
ffffc8c40d453d80
> LR: ffffc8c40bebd5d8 SP: ffffc8c40d453d80 PC:
ffffc8c40bebd5e8
> PSTATE: 60400005 FPVALID: 00000000
> notes[2]: 0
> notes[3]: 0
> ...
>
> To fix the current issue, let's map to present cpus instead of online
What's your expected output?
With the patch, you can see all cpus(online and offfline cpus) register
values are displayed:
crash> help -r
CPU 0:
X0: 0000000000000000 X1: ffff080f36f961c0 X2: ffff30e4e2c0b000
X3: 000000000010c908 X4: 0000000000000015 X5: 00ffffffffffffff
X6: 00000000a18171f3 X7: 0000000000000000 X8: 000000031e67ce11
X9: ffffd72a53493f8c X10: ffffffffffffffff X11: 000000000008560c
X12: ffff080f36f9456c X13: 071c71c71c71c71c X14: 0000000000000000
X15: 00000000b0ca4121 X16: ffffd72a5274d8f8 X17: 000000000000001c
X18: 00000000dfd86797 X19: 0000000000000003 X20: 000000566de36cf0
X21: ffff07ff8681ec00 X22: ffffd72a54d9b7a0 X23: 0000000000000003
X24: 000000563ec3d3b0 X25: 0000000000000000 X26: 00000000ffe50148
X27: 00000000e47dc000 X28: 00000000e4dd405a X29: ffffd72a54913d10
LR: ffffd72a53493f8c SP: ffffd72a54913d10 PC: ffffd72a53493f98
PSTATE: 60400009 FPVALID: 00000000
CPU 1:
X0: 0000000000000000 X1: ffff080f36fb71c0 X2: ffff30e4e2c2c000
X3: 000000000010c908 X4: 0000000000000015 X5: 00ffffffffffffff
X6: 00000000a18171f3 X7: 0000000000000000 X8: 000000426798d0d1
X9: ffffd72a53493f8c X10: 000000000000030d X11: 00000000ffffffff
X12: ffff080f36fb556c X13: 071c71c71c71c71c X14: 0000000000000000
X15: 0000000000000000 X16: 0000000000000000 X17: 0000000000000000
X18: 0000000000000000 X19: 0000000000000003 X20: 000000566de52b08
X21: ffff07ff92030800 X22: ffffd72a54d9b7a0 X23: 0000000000000003
X24: 00000055cfe8e6b0 X25: 0000000000000000 X26: 0000000000000000
X27: 0000000000000000 X28: 0000000000000000 X29: ffff800080643d70
LR: ffffd72a53493f8c SP: ffff800080643d70 PC: ffffd72a53493f98
PSTATE: 60400009 FPVALID: 00000000
CPU 2:
X0: 0000000000000000 X1: ffff080f36fd81c0 X2: ffff30e4e2c4d000
X3: 000000000010c908 X4: 0000000000000015 X5: 00ffffffffffffff
X6: 00000000a18171f3 X7: 0000000000000000 X8: 0000000000000000
X9: ffffd72a53493f8c X10: ffffffffffffffff X11: 00000000ffffffff
X12: ffff080f36fd656c X13: 071c71c71c71c71c X14: 0000000000000004
X15: 0000000000000000 X16: ffffd72a5349bf08 X17: ffffd72a5274b4d0
X18: 0000000000000014 X19: 0000000000000003 X20: 000000566de38cf8
X21: ffff07ff8adc2000 X22: ffffd72a54d9b7a0 X23: 0000000000000003
X24: 00000056661ba9d8 X25: 0000000000000000 X26: 0000000000000000
X27: 0000000000000000 X28: 0000000000000000 X29: ffff80008064bd70
LR: ffffd72a53493f8c SP: ffff80008064bd70 PC: ffffd72a53493f98
PSTATE: 60400009 FPVALID: 00000000
CPU 3:
X0: 0000000000000000 X1: ffff080f36ff91c0 X2: ffff30e4e2c6e000
X3: 000000000010c908 X4: 0000000000000015 X5: 00ffffffffffffff
X6: 00000000a18171f3 X7: 0000000000000000 X8: ffff800080653cf8
X9: ffffd72a53493f8c X10: ffffffffffffffff X11: 00000000003ab323
X12: ffff080f36ff756c X13: 071c71c71c71c71c X14: ffffffffffffffff
X15: ffff07ff812c8470 X16: ffffd72a527ee228 X17: 000000007b25e0dc
X18: 0000000000000000 X19: 0000000000000003 X20: 000000566de5d968
...
CPU 127:
X0: 0000000000000000 X1: ffff080f37ff51c0 X2: ffff30e4e3c6a000
X3: 000000000010c908 X4: 0000000000000015 X5: 00ffffffffffffff
X6: 00000000a18171f3 X7: 0000000000000000 X8: ffff800080a33cf8
X9: ffffd72a53493f8c X10: 00000000000d88c3 X11: 00000000ffffffff
X12: ffff080f37ff356c X13: 071c71c71c71c71c X14: 0000000000000000
X15: 0000000000000000 X16: 0000000000000000 X17: 0000000000000000
X18: 0000000000000000 X19: 0000000000000003 X20: 000000566de83d20
X21: ffff07ff9573a400 X22: ffffd72a54d9b7a0 X23: 0000000000000003
X24: 000000564cdff910 X25: 0000000000000000 X26: 0000000000000000
X27: 0000000000000000 X28: 0000000000000000 X29: ffff800080a33d70
LR: ffffd72a53493f8c SP: ffff800080a33d70 PC: ffffd72a53493f98
PSTATE: 60400009 FPVALID: 00000000
crash>
And the "help -D" will output all notes:
crash> help -D
...
num_prstatus_notes: 128
notes[0]: 3ddce5c0 (NT_PRSTATUS)
si.signo: 0 si.code: 0 si.errno: 0
cursig: 0 sigpend: 0 sighold: 0
pid: 0 ppid: 0 pgrp: 0 sid:0
utime: 0.000000 stime: 0.000000
cutime: 0.000000 cstime: 0.000000
X0: 0000000000000000 X1: ffff080f36f961c0 X2:
ffff30e4e2c0b000
X3: 000000000010c908 X4: 0000000000000015 X5:
00ffffffffffffff
X6: 00000000a18171f3 X7: 0000000000000000 X8:
000000031e67ce11
X9: ffffd72a53493f8c X10: ffffffffffffffff X11:
000000000008560c
X12: ffff080f36f9456c X13: 071c71c71c71c71c X14:
0000000000000000
X15: 00000000b0ca4121 X16: ffffd72a5274d8f8 X17:
000000000000001c
X18: 00000000dfd86797 X19: 0000000000000003 X20:
000000566de36cf0
X21: ffff07ff8681ec00 X22: ffffd72a54d9b7a0 X23:
0000000000000003
X24: 000000563ec3d3b0 X25: 0000000000000000 X26:
00000000ffe50148
X27: 00000000e47dc000 X28: 00000000e4dd405a X29:
ffffd72a54913d10
LR: ffffd72a53493f8c SP: ffffd72a54913d10 PC:
ffffd72a53493f98
PSTATE: 60400009 FPVALID: 00000000
notes[1]: 3ddce75c (NT_PRSTATUS)
si.signo: 0 si.code: 0 si.errno: 0
cursig: 0 sigpend: 0 sighold: 0
pid: 0 ppid: 0 pgrp: 0 sid:0
utime: 0.000000 stime: 0.000000
...
notes[127]: 3dddb224 (NT_PRSTATUS)
si.signo: 0 si.code: 0 si.errno: 0
cursig: 0 sigpend: 0 sighold: 0
pid: 0 ppid: 0 pgrp: 0 sid:0
utime: 0.000000 stime: 0.000000
cutime: 0.000000 cstime: 0.000000
X0: 0000000000000000 X1: ffff080f37ff51c0 X2:
ffff30e4e3c6a000
X3: 000000000010c908 X4: 0000000000000015 X5:
00ffffffffffffff
X6: 00000000a18171f3 X7: 0000000000000000 X8:
ffff800080a33cf8
X9: ffffd72a53493f8c X10: 00000000000d88c3 X11:
00000000ffffffff
X12: ffff080f37ff356c X13: 071c71c71c71c71c X14:
0000000000000000
X15: 0000000000000000 X16: 0000000000000000 X17:
0000000000000000
X18: 0000000000000000 X19: 0000000000000003 X20:
000000566de83d20
X21: ffff07ff9573a400 X22: ffffd72a54d9b7a0 X23:
0000000000000003
X24: 000000564cdff910 X25: 0000000000000000 X26:
0000000000000000
X27: 0000000000000000 X28: 0000000000000000 X29:
ffff800080a33d70
LR: ffffd72a53493f8c SP: ffff800080a33d70 PC:
ffffd72a53493f98
PSTATE: 60400009 FPVALID: 00000000
...
Thanks
Lianbo
Thanks,
Tao Liu
> cpus.
>
> Signed-off-by: Lianbo Jiang <lijiang(a)redhat.com>
> ---
> diskdump.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/diskdump.c b/diskdump.c
> index 0ff87822732a..6c81c52e58b6 100644
> --- a/diskdump.c
> +++ b/diskdump.c
> @@ -181,12 +181,12 @@ map_cpus_to_prstatus_kdump_cmprs(void)
> BZERO(dd->nt_prstatus_percpu, size);
>
> /*
> - * Re-populate the array with the notes mapping to online cpus
> + * Re-populate the array with the notes mapping to present cpus
> */
> nrcpus = (kt->kernel_NR_CPUS ? kt->kernel_NR_CPUS : NR_CPUS);
>
> for (i = 0, j = 0; i < nrcpus; i++) {
> - if (in_cpu_map(ONLINE_MAP, i) &&
machdep->is_cpu_prstatus_valid(i)) {
> + if (in_cpu_map(PRESENT_MAP, i) &&
machdep->is_cpu_prstatus_valid(i)) {
> dd->nt_prstatus_percpu[i] = nt_ptr[j++];
> dd->num_prstatus_notes =
> MAX(dd->num_prstatus_notes, i+1);
> --
> 2.51.1
> --
> Crash-utility mailing list -- devel(a)lists.crash-utility.osci.io
> To unsubscribe send an email to devel-leave(a)lists.crash-utility.osci.io
> https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
> Contribution Guidelines:
https://github.com/crash-utility/crash/wiki