Hi, Tao
Thank you for helping with the review.

On Fri, Feb 20, 2026 at 4:03 PM Tao Liu <ltao@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@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@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@lists.crash-utility.osci.io
> To unsubscribe send an email to devel-leave@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