Hi Lijiang,
Thanks for your explanation. That makes sense to me, so ack.
Thanks,
Tao Liu
On Wed, Feb 25, 2026 at 3:59 PM lijiang <lijiang(a)redhat.com> wrote:
>
> 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
>>