On Wed, Jun 29, 2016 at 04:44:41PM -0400, Dave Anderson wrote:
> Hi Takahiro,
>
> I applied patches 1/2 and 2/2 from the v5 patchset. But I can't
> believe the results are what you intended?
Obviously I meant 1/4 and 2/4 above.
However, I was under the impression that the 3/4 patch was a standalone
patch that only served to change the text address displayed,
Right. I might have made some mistake when I squashed up the changes.
and that
"adding this patch was a discussion topic": ???
> On arm64, the link register (LR) holds a return address, which is the one
> just after a branch instruction. So using a saved lr as PC for backtracing
> might cause some confusion.
> For example, in kernel/entry.S,
> work_resched:
> ...
> bl schedule
>
> ret_to_user:
> ...
>
> The current code shows "ret_o_user", instead of
"work_resched",
> as a caller of schedule().
>
> This patch corrects a PC by decrementing it by 4.
> But please note that this change may also make people a bit confused
> because a value of LR in the stack dump of "bt -f" doesn't match
with
> an address in one-line summary.
>
> #2 [ffffcc7511407eb0] schedule at ffff0000d628aee0
> ffffcc7511407eb0: ffffcc6d22f23080 ffff0000d5b44d6c <= LR
> ffffcc7511407ec0: ffffcc7511407ed0 0000000000000000
> #3 [ffffcc7511407ed0] work_resched at ffff0000d5b44d68 <= correcrted PC
>
> Signed-off-by: AKASHI Takahiro <takahiro akashi linaro org>
...and as you subsequently mentioned, "adding this patch was a discussion
topic".
But anyway, for the hell of it, I subsequently applied 3/4, and now I at least see
the IPI exception frames:
Sure that I did make this change recently.
I mean, it is intentional but it should not have gone with patch#3 but patch#1.
crash> bt -a
PID: 0 TASK: ffff000008dcd900 CPU: 0 COMMAND: "swapper/0"
PC: ffff0000080857c0 [arch_cpu_idle+16]
LR: ffff0000080857bc [arch_cpu_idle+12]
SP: ffff000008dc3f10 PSTATE: 60400149
X29: ffff000008dc3f10 X28: ffff000008dc0000 X27: 0000000000000000
X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
X23: ffff000008dc0000 X22: ffff000008bd0270 X21: ffff000008dc0000
X20: ffff000008dc5b88 X19: 0000000000000000 X18: 00000000a632f641
X17: 0000ffff7da57880 X16: ffff0000081d9838 X15: 00000000383a0a79
X14: 00000000b2b0b162 X13: 000000005f2cbeec X12: 0000000000045a9e
X11: ffff8000213bd800 X10: 0000000000000850 X9: ffff000008dc0000
X8: 000000010000aa07 X7: 000000000000003d X6: 0015752a00000000
X5: 0100000000000000 X4: 00000000000001c0 X3: 0000000000000000
X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
#0 [ffff000008dc3f10] arch_cpu_idle at ffff0000080857bc
#1 [ffff000008dc3f20] cpu_startup_entry at ffff0000080f26c8
#2 [ffff000008dc3f80] rest_init at ffff0000087c792c
#3 [ffff000008dc3fa0] start_kernel at ffff000008b10b6c
PID: 0 TASK: ffff8000218c0c80 CPU: 1 COMMAND: "swapper/1"
PC: ffff0000080857c0 [arch_cpu_idle+16]
LR: ffff0000080857bc [arch_cpu_idle+12]
SP: ffff8000218cff60 PSTATE: 60000349
X29: ffff8000218cff60 X28: ffff8000218cc000 X27: 0000000000000000
X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
X23: ffff8000218cc000 X22: ffff000008bd0270 X21: ffff8000218cc000
X20: ffff000008dc5b88 X19: 0000000000000000 X18: 000000000000016d
X17: 0000007f8b122780 X16: ffffffc0001adf68 X15: 0000000000000005
X14: 0000000c80096000 X13: ffff8000212b6600 X12: 0000000000047ae2
X11: ffff800021089980 X10: 0000000000000850 X9: ffff8000218cc000
X8: 000000010000aa07 X7: 0000000000000243 X6: 0015752a00000000
X5: 0100000000000000 X4: 00000000000003c0 X3: 0000000000000000
X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
#0 [ffff8000218cff60] arch_cpu_idle at ffff0000080857bc
#1 [ffff8000218cff70] cpu_startup_entry at ffff0000080f26c8
#2 [ffff8000218cffd0] secondary_start_kernel at ffff00000808e1e8
PID: 1324 TASK: ffff80002018be80 CPU: 2 COMMAND: "dhry"
PC: 00000000004016a4 LR: 00000000004016a4 SP: 0000ffffc10c40a0
X29: 0000ffffc10c40a0 X28: 0000000000000000 X27: 0000000000000000
X26: 0000000000000000 X25: 0000000000402138 X24: 00000000004021f0
X23: 0000000000000000 X22: 0000000000000000 X21: 00000000004001a0
X20: 0000000000000000 X19: 0000000000000000 X18: 0000000000000000
X17: 0000000000000001 X16: 0000000000000000 X15: 0000000000493000
X14: 0000000000498000 X13: ffffffffffffffff X12: 0000000000000005
X11: 000000000000001e X10: 0101010101010101 X9: fffffffff59a9190
X8: 7f7f7f7f7f7f7f7f X7: 1f535226301f2b4c X6: 00000003001d1000
X5: 00101d0003000000 X4: 0000000000000000 X3: 4952545320454d4f
X2: 0000000010c35b40 X1: 0000000000000011 X0: 0000000010c35b40
ORIG_X0: 0000000000498700 SYSCALLNO: ffffffffffffffff PSTATE: 20000000
#0 [user space]
PID: 1223 TASK: ffff800020ef5780 CPU: 3 COMMAND: "sh"
#0 [ffff800020b0ba70] crash_kexec at ffff00000812b0a8
#1 [ffff800020b0ba90] die at ffff000008088ce4
#2 [ffff800020b0bad0] __do_kernel_fault at ffff000008098fa8
#3 [ffff800020b0bb00] do_page_fault at ffff000008096810
#4 [ffff800020b0bb60] do_translation_fault at ffff000008096908
#5 [ffff800020b0bb70] do_mem_abort at ffff000008081288
#6 [ffff800020b0bc20] el1_da at ffff000008084564
--- <Exception in kernel> ---
PC: ffff000008457fc8 [sysrq_handle_crash+32]
LR: ffff000008457fb4 [sysrq_handle_crash+12]
SP: ffff800020b0bd40 PSTATE: 60400149
X29: ffff800020b0bd40 X28: ffff800020b08000 X27: ffff0000087e2000
X26: 0000000000000040 X25: 0000000000000120 X24: 0000000000000015
X23: 0000000000000000 X22: 0000000000000009 X21: ffff000008e071b0
X20: 0000000000000063 X19: ffff000008dda000 X18: 0000000000000006
X17: 0000ffff83d266c0 X16: ffff0000081c68b8 X15: ffff000008e6cc95
X14: 0000ffff83cc28f0 X13: ffff000008e6c758 X12: ffff000008dda7a0
X11: 0000000000000106 X10: 0000000000000002 X9: 0000000000000001
X8: 0000000000000106 X7: 0000000000000000 X6: ffff800022f337a4
X5: 00000000000047d4 X4: 0000000000000000 X3: 0000000000000000
X2: ffff000008dda7b8 X1: 0000000000000000 X0: 0000000000000001
#7 [ffff800020b0bd40] sysrq_handle_crash at ffff000008457fc4
#8 [ffff800020b0bd50] __handle_sysrq at ffff000008458640
#9 [ffff800020b0bd90] write_sysrq_trigger at ffff000008458abc
#10 [ffff800020b0bdb0] proc_reg_write at ffff000008225418
#11 [ffff800020b0bdd0] __vfs_write at ffff0000081c4770
#12 [ffff800020b0be50] vfs_write at ffff0000081c5584
#13 [ffff800020b0be90] sys_write at ffff0000081c68f8
#14 [ffff800020b0bed0] el0_svc_naked at ffff000008084e6c
--- <Exception in user> ---
PC: 0000ffff83d7b1e8 LR: 0000ffff83d2d700 SP: 0000fffffe197460
X29: 0000fffffe197460 X28: 0000000000000000 X27: 0000000000000000
X26: 000000001e9e40c8 X25: 00000000004c9be8 X24: 00000000004ec000
X23: 0000000000000001 X22: 0000000000000002 X21: 0000ffff83e02500
X20: 000000001e9da808 X19: 0000000000000002 X18: 0000000000000015
X17: 0000ffff83d266c0 X16: 0000000000000000 X15: 0015a60d0a000000
X14: 0000ffff83cc28f0 X13: 0000000000000018 X12: 0000000000000008
X11: 0101010101010101 X10: 7f7f7f7f7f7f7f7f X9: fefefefeff00ff62
X8: 0000000000000040 X7: fefefefefefefefe X6: 000000001e9da808
X5: 0000ffff83d055c8 X4: 0000000000000000 X3: 0000000000000000
X2: 0000000000000002 X1: 000000001e9da808 X0: 0000000000000001
ORIG_X0: 0000000000000001 SYSCALLNO: 40 PSTATE: 20000000
PID: 0 TASK: ffff8000218c3200 CPU: 4 COMMAND: "swapper/4"
PC: ffff0000080857c0 [arch_cpu_idle+16]
LR: ffff0000080857bc [arch_cpu_idle+12]
SP: ffff8000218dbf60 PSTATE: 60000349
X29: ffff8000218dbf60 X28: ffff8000218d8000 X27: 0000000000000000
X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
X23: ffff8000218d8000 X22: ffff000008bd0270 X21: ffff8000218d8000
X20: ffff000008dc5b88 X19: 0000000000000000 X18: 000000000000016d
X17: 0000007f8b122780 X16: ffffffc0001adf68 X15: 0000000000000000
X14: 0000000000000000 X13: 00000000000003e7 X12: 0000000000000016
X11: ffff0000087ef470 X10: 0000000000000850 X9: ffff8000218d8000
X8: ffff8000218c3ab0 X7: 7fffffffffffffff X6: 0015752a00000000
X5: 0100000000000000 X4: 00000000000003c0 X3: 0000000000000000
X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
#0 [ffff8000218dbf60] arch_cpu_idle at ffff0000080857bc
#1 [ffff8000218dbf70] cpu_startup_entry at ffff0000080f26c8
#2 [ffff8000218dbfd0] secondary_start_kernel at ffff00000808e1e8
PID: 0 TASK: ffff8000218c3e80 CPU: 5 COMMAND: "swapper/5"
PC: ffff0000080857c0 [arch_cpu_idle+16]
LR: ffff0000080857bc [arch_cpu_idle+12]
SP: ffff8000218dff60 PSTATE: 60000349
X29: ffff8000218dff60 X28: ffff8000218dc000 X27: 0000000000000000
X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
X23: ffff8000218dc000 X22: ffff000008bd0270 X21: ffff8000218dc000
X20: ffff000008dc5b88 X19: 0000000000000000 X18: 000000000000016d
X17: 0000007f8b122780 X16: ffffffc0001adf68 X15: 0000000000000007
X14: 0000000000000000 X13: 000000000000039d X12: 0000000000000000
X11: ffff0000087ef470 X10: 0000000000000850 X9: ffff8000218dc000
X8: 000000010000a479 X7: 7fffffffffffffff X6: 0016694e00000000
X5: 0100000000000000 X4: 00000000000003c0 X3: 0000000000000000
X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
#0 [ffff8000218dff60] arch_cpu_idle at ffff0000080857bc
#1 [ffff8000218dff70] cpu_startup_entry at ffff0000080f26c8
#2 [ffff8000218dffd0] secondary_start_kernel at ffff00000808e1e8
PID: 0 TASK: ffff8000218c4b00 CPU: 6 COMMAND: "swapper/6"
PC: ffff0000080857c0 [arch_cpu_idle+16]
LR: ffff0000080857bc [arch_cpu_idle+12]
SP: ffff8000218ebf60 PSTATE: 60000349
X29: ffff8000218ebf60 X28: ffff8000218e8000 X27: 0000000000000000
X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
X23: ffff8000218e8000 X22: ffff000008bd0270 X21: ffff8000218e8000
X20: ffff000008dc5b88 X19: 0000000000000000 X18: 000000000000016d
X17: 0000007f8b122780 X16: ffffffc0001adf68 X15: 000000000000000a
X14: 0000000000000000 X13: 00000000000003a1 X12: 0000000000000000
X11: ffff8000213a0d00 X10: 0000000000000850 X9: ffff8000218e8000
X8: ffff8000218c53b0 X7: 00000000000001c4 X6: 002887fa00000000
X5: 0100000000000000 X4: 00000000000003c0 X3: 0000000000000000
X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
#0 [ffff8000218ebf60] arch_cpu_idle at ffff0000080857bc
#1 [ffff8000218ebf70] cpu_startup_entry at ffff0000080f26c8
#2 [ffff8000218ebfd0] secondary_start_kernel at ffff00000808e1e8
PID: 0 TASK: ffff8000218c5780 CPU: 7 COMMAND: "swapper/7"
PC: ffff0000080857c0 [arch_cpu_idle+16]
LR: ffff0000080857bc [arch_cpu_idle+12]
SP: ffff8000218eff60 PSTATE: 60400149
X29: ffff8000218eff60 X28: ffff8000218ec000 X27: 0000000000000000
X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
X23: ffff8000218ec000 X22: ffff000008bd0270 X21: ffff8000218ec000
X20: ffff000008dc5b88 X19: 0000000000000000 X18: fffffffffffffffb
X17: 0000ffff9dc8ba48 X16: ffff0000081da048 X15: 003b9aca00000000
X14: 0000000000000000 X13: 0000000000000001 X12: 0000000000000000
X11: ffff800021089980 X10: 0000000000000850 X9: ffff8000218ec000
X8: 000000010000a280 X7: ffff8000209b39c8 X6: ffff8000209b39c9
X5: 0100000000000000 X4: 00000000000001c0 X3: 0000000000000000
X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
#0 [ffff8000218eff60] arch_cpu_idle at ffff0000080857bc
#1 [ffff8000218eff70] cpu_startup_entry at ffff0000080f26c8
#2 [ffff8000218effd0] secondary_start_kernel at ffff00000808e1e8
crash>
But why do you think that it is an improvement to leave out the transition
to the IRQ stack?
I explained the reason in my previous e-mail.
I still believe that it is an improvement.
In any case, I haven't even started looking at the "bt
-f" part of the patch
because quite frankly, this patchset is so complex that I haven't even
begun to try to understand it. When you said it would be "easier to
maintain", well, perhaps for *you* maybe, but certainly not for me!
Do you think so?
It is because you are the author.
The changes I made were big and look complex to you,
but the resulting code is simple enough for others IMO.
I tried to make the main loop of arm64_back_trace_cmd() simple and
quite resemble the counterpart of dump_backtrace() in the kernel.
The differences come mainly from the facts:
1.you (crash util) need to display not only a one-line frame summary
(with a value of stack/frame pointer), but also a full dump of stack
2.your current code will miss a *very important* stack frame that is
the one exactly when an interrupt takes place.
I believe that the latter is a big improvement.
Yeah, due to the changes, arm64_unwind_frame() may get a bit complicated,
but it is very naive implementation based on the nature of the kernel's
stack usage (or PCS for ARM), the complexity is not the result of my poor
skill of coding.
In other words, the complexity is now *encapsulated* in that function.
In addition, I wrote down that function step-by-step, from generic cases
to exceptional cases, with a bunch of comments for better understandings.
And you will be able to remove such exceptional cases *if* you don't like
them.
Given those stuffs, I think that my code is easier to maintain.
Again, surely up to you.
-Takahiro AKASHI
Without
the kernel's backtrace code from which the current code is based, I don't have
anything to work from anymore. I'm really not sure whether the coverage of the
"corner cases" you referred to make this effort worth it. I would like to see
examples
of how the current code fails. But anyway, I will continue to test it to see
if there actually is any significant upgrade from what we already have in place.
>From a kernel debugging perspective, all we really need is a basic unwinder,
and optionally the full dump of the stack data in between those frames. And the
current code does do that at a minimum, and there's much to be said for simplicity.
Dave
>
> For example, taking the 4.6 vmcore that you gave to me, here is the
> current crash utility's output of "bt -a", where the crashing task
> entered crash_kexec() via the sysrq-c page fault exception, and the
> tasks on the other cpus have all entered crash_save_cpu() on their
> IRQ stack as a result of the shutdown IPI, one from user-space and
> the others from the kernel:
>
> crash> bt -a
> PID: 0 TASK: ffff000008dcd900 CPU: 0 COMMAND: "swapper/0"
> #0 [ffff800022f42e50] crash_save_cpu at ffff00000812ae44
> #1 [ffff800022f43010] handle_IPI at ffff00000808e718
> #2 [ffff800022f43040] gic_handle_irq at ffff0000080815f8
> #3 [ffff800022f43080] el1_irq at ffff000008084720
> --- <IRQ stack> ---
> PC: ffff0000080857c0 [arch_cpu_idle+16]
> LR: ffff0000080857bc [arch_cpu_idle+12]
> SP: ffff000008dc3f10 PSTATE: 60400149
> X29: ffff000008dc3f10 X28: ffff000008dc0000 X27: 0000000000000000
> X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
> X23: ffff000008dc0000 X22: ffff000008bd0270 X21: ffff000008dc0000
> X20: ffff000008dc5b88 X19: 0000000000000000 X18: 00000000a632f641
> X17: 0000ffff7da57880 X16: ffff0000081d9838 X15: 00000000383a0a79
> X14: 00000000b2b0b162 X13: 000000005f2cbeec X12: 0000000000045a9e
> X11: ffff8000213bd800 X10: 0000000000000850 X9: ffff000008dc0000
> X8: 000000010000aa07 X7: 000000000000003d X6: 0015752a00000000
> X5: 0100000000000000 X4: 00000000000001c0 X3: 0000000000000000
> X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
> ORIG_X0: 0000000000000000 SYSCALLNO: 7fffffffffffffff
> #4 [ffff000008dc3f10] arch_cpu_idle at ffff0000080857c0
> #5 [ffff000008dc3f20] cpu_startup_entry at ffff0000080f26cc
> #6 [ffff000008dc3f80] rest_init at ffff0000087c7930
> #7 [ffff000008dc3fa0] start_kernel at ffff000008b10b70
>
> PID: 0 TASK: ffff8000218c0c80 CPU: 1 COMMAND: "swapper/1"
> #0 [ffff800022f56e50] crash_save_cpu at ffff00000812ae44
> #1 [ffff800022f57010] handle_IPI at ffff00000808e718
> #2 [ffff800022f57040] gic_handle_irq at ffff0000080815f8
> #3 [ffff800022f57080] el1_irq at ffff000008084720
> --- <IRQ stack> ---
> PC: ffff0000080857c0 [arch_cpu_idle+16]
> LR: ffff0000080857bc [arch_cpu_idle+12]
> SP: ffff8000218cff60 PSTATE: 60000349
> X29: ffff8000218cff60 X28: ffff8000218cc000 X27: 0000000000000000
> X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
> X23: ffff8000218cc000 X22: ffff000008bd0270 X21: ffff8000218cc000
> X20: ffff000008dc5b88 X19: 0000000000000000 X18: 000000000000016d
> X17: 0000007f8b122780 X16: ffffffc0001adf68 X15: 0000000000000005
> X14: 0000000c80096000 X13: ffff8000212b6600 X12: 0000000000047ae2
> X11: ffff800021089980 X10: 0000000000000850 X9: ffff8000218cc000
> X8: 000000010000aa07 X7: 0000000000000243 X6: 0015752a00000000
> X5: 0100000000000000 X4: 00000000000003c0 X3: 0000000000000000
> X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
> ORIG_X0: 0000000000000000 SYSCALLNO: 7fffffffffffffff
> #4 [ffff8000218cff60] arch_cpu_idle at ffff0000080857c0
> #5 [ffff8000218cff70] cpu_startup_entry at ffff0000080f26cc
> #6 [ffff8000218cffd0] secondary_start_kernel at ffff00000808e1ec
>
> PID: 1324 TASK: ffff80002018be80 CPU: 2 COMMAND: "dhry"
> #0 [ffff800022f6ae50] crash_save_cpu at ffff00000812ae44
> #1 [ffff800022f6b010] handle_IPI at ffff00000808e718
> #2 [ffff800022f6b040] gic_handle_irq at ffff0000080815f8
> #3 [ffff800022f6b080] el0_irq_naked at ffff000008084c4c
> --- <IRQ stack> ---
> PC: 00000000004016a4 LR: 00000000004016a4 SP: 0000ffffc10c40a0
> X29: 0000ffffc10c40a0 X28: 0000000000000000 X27: 0000000000000000
> X26: 0000000000000000 X25: 0000000000402138 X24: 00000000004021f0
> X23: 0000000000000000 X22: 0000000000000000 X21: 00000000004001a0
> X20: 0000000000000000 X19: 0000000000000000 X18: 0000000000000000
> X17: 0000000000000001 X16: 0000000000000000 X15: 0000000000493000
> X14: 0000000000498000 X13: ffffffffffffffff X12: 0000000000000005
> X11: 000000000000001e X10: 0101010101010101 X9: fffffffff59a9190
> X8: 7f7f7f7f7f7f7f7f X7: 1f535226301f2b4c X6: 00000003001d1000
> X5: 00101d0003000000 X4: 0000000000000000 X3: 4952545320454d4f
> X2: 0000000010c35b40 X1: 0000000000000011 X0: 0000000010c35b40
> ORIG_X0: 0000000000498700 SYSCALLNO: ffffffffffffffff PSTATE:
> 20000000
>
> PID: 1223 TASK: ffff800020ef5780 CPU: 3 COMMAND: "sh"
> #0 [ffff800020b0ba70] crash_kexec at ffff00000812b0ac
> #1 [ffff800020b0ba90] die at ffff000008088ce8
> #2 [ffff800020b0bad0] __do_kernel_fault at ffff000008098fac
> #3 [ffff800020b0bb00] do_page_fault at ffff000008096814
> #4 [ffff800020b0bb60] do_translation_fault at ffff00000809690c
> #5 [ffff800020b0bb70] do_mem_abort at ffff00000808128c
> #6 [ffff800020b0bd40] el1_da at ffff000008084568
> PC: ffff000008457fc8 [sysrq_handle_crash+32]
> LR: ffff000008457fb4 [sysrq_handle_crash+12]
> SP: ffff800020b0bd40 PSTATE: 60400149
> X29: ffff800020b0bd40 X28: ffff800020b08000 X27: ffff0000087e2000
> X26: 0000000000000040 X25: 0000000000000120 X24: 0000000000000015
> X23: 0000000000000000 X22: 0000000000000009 X21: ffff000008e071b0
> X20: 0000000000000063 X19: ffff000008dda000 X18: 0000000000000006
> X17: 0000ffff83d266c0 X16: ffff0000081c68b8 X15: ffff000008e6cc95
> X14: 0000ffff83cc28f0 X13: ffff000008e6c758 X12: ffff000008dda7a0
> X11: 0000000000000106 X10: 0000000000000002 X9: 0000000000000001
> X8: 0000000000000106 X7: 0000000000000000 X6: ffff800022f337a4
> X5: 00000000000047d4 X4: 0000000000000000 X3: 0000000000000000
> X2: ffff000008dda7b8 X1: 0000000000000000 X0: 0000000000000001
> ORIG_X0: ffff000008dda000 SYSCALLNO: ffff80002104d418
> #7 [ffff800020b0bd50] __handle_sysrq at ffff000008458644
> #8 [ffff800020b0bd90] write_sysrq_trigger at ffff000008458ac0
> #9 [ffff800020b0bdb0] proc_reg_write at ffff00000822541c
> #10 [ffff800020b0bdd0] __vfs_write at ffff0000081c4774
> #11 [ffff800020b0be50] vfs_write at ffff0000081c5588
> #12 [ffff800020b0be90] sys_write at ffff0000081c68fc
> #13 [ffff800020b0bed0] el0_svc_naked at ffff000008084e70
> PC: 0000ffff83d7b1e8 LR: 0000ffff83d2d700 SP: 0000fffffe197460
> X29: 0000fffffe197460 X28: 0000000000000000 X27: 0000000000000000
> X26: 000000001e9e40c8 X25: 00000000004c9be8 X24: 00000000004ec000
> X23: 0000000000000001 X22: 0000000000000002 X21: 0000ffff83e02500
> X20: 000000001e9da808 X19: 0000000000000002 X18: 0000000000000015
> X17: 0000ffff83d266c0 X16: 0000000000000000 X15: 0015a60d0a000000
> X14: 0000ffff83cc28f0 X13: 0000000000000018 X12: 0000000000000008
> X11: 0101010101010101 X10: 7f7f7f7f7f7f7f7f X9: fefefefeff00ff62
> X8: 0000000000000040 X7: fefefefefefefefe X6: 000000001e9da808
> X5: 0000ffff83d055c8 X4: 0000000000000000 X3: 0000000000000000
> X2: 0000000000000002 X1: 000000001e9da808 X0: 0000000000000001
> ORIG_X0: 0000000000000001 SYSCALLNO: 40 PSTATE: 20000000
>
> PID: 0 TASK: ffff8000218c3200 CPU: 4 COMMAND: "swapper/4"
> #0 [ffff800022f92e50] crash_save_cpu at ffff00000812ae44
> #1 [ffff800022f93010] handle_IPI at ffff00000808e718
> #2 [ffff800022f93040] gic_handle_irq at ffff0000080815f8
> #3 [ffff800022f93080] el1_irq at ffff000008084720
> --- <IRQ stack> ---
> PC: ffff0000080857c0 [arch_cpu_idle+16]
> LR: ffff0000080857bc [arch_cpu_idle+12]
> SP: ffff8000218dbf60 PSTATE: 60000349
> X29: ffff8000218dbf60 X28: ffff8000218d8000 X27: 0000000000000000
> X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
> X23: ffff8000218d8000 X22: ffff000008bd0270 X21: ffff8000218d8000
> X20: ffff000008dc5b88 X19: 0000000000000000 X18: 000000000000016d
> X17: 0000007f8b122780 X16: ffffffc0001adf68 X15: 0000000000000000
> X14: 0000000000000000 X13: 00000000000003e7 X12: 0000000000000016
> X11: ffff0000087ef470 X10: 0000000000000850 X9: ffff8000218d8000
> X8: ffff8000218c3ab0 X7: 7fffffffffffffff X6: 0015752a00000000
> X5: 0100000000000000 X4: 00000000000003c0 X3: 0000000000000000
> X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
> ORIG_X0: 0000000000000000 SYSCALLNO: 7fffffffffffffff
> #4 [ffff8000218dbf60] arch_cpu_idle at ffff0000080857c0
> #5 [ffff8000218dbf70] cpu_startup_entry at ffff0000080f26cc
> #6 [ffff8000218dbfd0] secondary_start_kernel at ffff00000808e1ec
>
> PID: 0 TASK: ffff8000218c3e80 CPU: 5 COMMAND: "swapper/5"
> #0 [ffff800022fa6e50] crash_save_cpu at ffff00000812ae44
> #1 [ffff800022fa7010] handle_IPI at ffff00000808e718
> #2 [ffff800022fa7040] gic_handle_irq at ffff0000080815f8
> #3 [ffff800022fa7080] el1_irq at ffff000008084720
> --- <IRQ stack> ---
> PC: ffff0000080857c0 [arch_cpu_idle+16]
> LR: ffff0000080857bc [arch_cpu_idle+12]
> SP: ffff8000218dff60 PSTATE: 60000349
> X29: ffff8000218dff60 X28: ffff8000218dc000 X27: 0000000000000000
> X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
> X23: ffff8000218dc000 X22: ffff000008bd0270 X21: ffff8000218dc000
> X20: ffff000008dc5b88 X19: 0000000000000000 X18: 000000000000016d
> X17: 0000007f8b122780 X16: ffffffc0001adf68 X15: 0000000000000007
> X14: 0000000000000000 X13: 000000000000039d X12: 0000000000000000
> X11: ffff0000087ef470 X10: 0000000000000850 X9: ffff8000218dc000
> X8: 000000010000a479 X7: 7fffffffffffffff X6: 0016694e00000000
> X5: 0100000000000000 X4: 00000000000003c0 X3: 0000000000000000
> X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
> ORIG_X0: 0000000000000000 SYSCALLNO: 7fffffffffffffff
> #4 [ffff8000218dff60] arch_cpu_idle at ffff0000080857c0
> #5 [ffff8000218dff70] cpu_startup_entry at ffff0000080f26cc
> #6 [ffff8000218dffd0] secondary_start_kernel at ffff00000808e1ec
>
> PID: 0 TASK: ffff8000218c4b00 CPU: 6 COMMAND: "swapper/6"
> #0 [ffff800022fbae50] crash_save_cpu at ffff00000812ae44
> #1 [ffff800022fbb010] handle_IPI at ffff00000808e718
> #2 [ffff800022fbb040] gic_handle_irq at ffff0000080815f8
> #3 [ffff800022fbb080] el1_irq at ffff000008084720
> --- <IRQ stack> ---
> PC: ffff0000080857c0 [arch_cpu_idle+16]
> LR: ffff0000080857bc [arch_cpu_idle+12]
> SP: ffff8000218ebf60 PSTATE: 60000349
> X29: ffff8000218ebf60 X28: ffff8000218e8000 X27: 0000000000000000
> X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
> X23: ffff8000218e8000 X22: ffff000008bd0270 X21: ffff8000218e8000
> X20: ffff000008dc5b88 X19: 0000000000000000 X18: 000000000000016d
> X17: 0000007f8b122780 X16: ffffffc0001adf68 X15: 000000000000000a
> X14: 0000000000000000 X13: 00000000000003a1 X12: 0000000000000000
> X11: ffff8000213a0d00 X10: 0000000000000850 X9: ffff8000218e8000
> X8: ffff8000218c53b0 X7: 00000000000001c4 X6: 002887fa00000000
> X5: 0100000000000000 X4: 00000000000003c0 X3: 0000000000000000
> X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
> ORIG_X0: 0000000000000000 SYSCALLNO: 7fffffffffffffff
> #4 [ffff8000218ebf60] arch_cpu_idle at ffff0000080857c0
> #5 [ffff8000218ebf70] cpu_startup_entry at ffff0000080f26cc
> #6 [ffff8000218ebfd0] secondary_start_kernel at ffff00000808e1ec
>
> PID: 0 TASK: ffff8000218c5780 CPU: 7 COMMAND: "swapper/7"
> #0 [ffff800022fcee50] crash_save_cpu at ffff00000812ae44
> #1 [ffff800022fcf010] handle_IPI at ffff00000808e718
> #2 [ffff800022fcf040] gic_handle_irq at ffff0000080815f8
> #3 [ffff800022fcf080] el1_irq at ffff000008084720
> --- <IRQ stack> ---
> PC: ffff0000080857c0 [arch_cpu_idle+16]
> LR: ffff0000080857bc [arch_cpu_idle+12]
> SP: ffff8000218eff60 PSTATE: 60400149
> X29: ffff8000218eff60 X28: ffff8000218ec000 X27: 0000000000000000
> X26: ffff000008dc5000 X25: ffff000008dc5c1c X24: ffff000008dc5000
> X23: ffff8000218ec000 X22: ffff000008bd0270 X21: ffff8000218ec000
> X20: ffff000008dc5b88 X19: 0000000000000000 X18: fffffffffffffffb
> X17: 0000ffff9dc8ba48 X16: ffff0000081da048 X15: 003b9aca00000000
> X14: 0000000000000000 X13: 0000000000000001 X12: 0000000000000000
> X11: ffff800021089980 X10: 0000000000000850 X9: ffff8000218ec000
> X8: 000000010000a280 X7: ffff8000209b39c8 X6: ffff8000209b39c9
> X5: 0100000000000000 X4: 00000000000001c0 X3: 0000000000000000
> X2: 0000000000000001 X1: 0000000000000000 X0: 0000000000000000
> ORIG_X0: 0000000000000000 SYSCALLNO: 7fffffffffffffff
> #4 [ffff8000218eff60] arch_cpu_idle at ffff0000080857c0
> #5 [ffff8000218eff70] cpu_startup_entry at ffff0000080f26cc
> #6 [ffff8000218effd0] secondary_start_kernel at ffff00000808e1ec
> crash>
>
> And that's precisely what we want to see. (other than perhaps the
> in-kernel exception frame's dump of the ORIG_X0 and SYSCALL registers)
>
> Now, with v5's patches 1/2 and 2/2 patches applied, this is what gets
> displayed:
>
> crash> bt -a
> PID: 0 TASK: ffff000008dcd900 CPU: 0 COMMAND: "swapper/0"
> #0 [ffff000008dc3f10] arch_cpu_idle at ffff0000080857c0
> #1 [ffff000008dc3f20] cpu_startup_entry at ffff0000080f26cc
> #2 [ffff000008dc3f80] rest_init at ffff0000087c7930
> #3 [ffff000008dc3fa0] start_kernel at ffff000008b10b70
>
> PID: 0 TASK: ffff8000218c0c80 CPU: 1 COMMAND: "swapper/1"
> #0 [ffff8000218cff60] arch_cpu_idle at ffff0000080857c0
> #1 [ffff8000218cff70] cpu_startup_entry at ffff0000080f26cc
> #2 [ffff8000218cffd0] secondary_start_kernel at ffff00000808e1ec
>
> PID: 1324 TASK: ffff80002018be80 CPU: 2 COMMAND: "dhry"
> PC: 00000000004016a4 LR: 00000000004016a4 SP: 0000ffffc10c40a0
> X29: 0000ffffc10c40a0 X28: 0000000000000000 X27: 0000000000000000
> X26: 0000000000000000 X25: 0000000000402138 X24: 00000000004021f0
> X23: 0000000000000000 X22: 0000000000000000 X21: 00000000004001a0
> X20: 0000000000000000 X19: 0000000000000000 X18: 0000000000000000
> X17: 0000000000000001 X16: 0000000000000000 X15: 0000000000493000
> X14: 0000000000498000 X13: ffffffffffffffff X12: 0000000000000005
> X11: 000000000000001e X10: 0101010101010101 X9: fffffffff59a9190
> X8: 7f7f7f7f7f7f7f7f X7: 1f535226301f2b4c X6: 00000003001d1000
> X5: 00101d0003000000 X4: 0000000000000000 X3: 4952545320454d4f
> X2: 0000000010c35b40 X1: 0000000000000011 X0: 0000000010c35b40
> ORIG_X0: 0000000000498700 SYSCALLNO: ffffffffffffffff PSTATE:
> 20000000
>
> #0 [user space]
>
> PID: 1223 TASK: ffff800020ef5780 CPU: 3 COMMAND: "sh"
> #0 [ffff800020b0ba70] crash_kexec at ffff00000812b0ac
> #1 [ffff800020b0ba90] die at ffff000008088ce8
> #2 [ffff800020b0bad0] __do_kernel_fault at ffff000008098fac
> #3 [ffff800020b0bb00] do_page_fault at ffff000008096814
> #4 [ffff800020b0bb60] do_translation_fault at ffff00000809690c
> #5 [ffff800020b0bb70] do_mem_abort at ffff00000808128c
> #6 [ffff800020b0bc20] el1_da at ffff000008084568
> --- <Exception in kernel> ---
> PC: ffff000008457fc8 [sysrq_handle_crash+32]
> LR: ffff000008457fb4 [sysrq_handle_crash+12]
> SP: ffff800020b0bd40 PSTATE: 60400149
> X29: ffff800020b0bd40 X28: ffff800020b08000 X27: ffff0000087e2000
> X26: 0000000000000040 X25: 0000000000000120 X24: 0000000000000015
> X23: 0000000000000000 X22: 0000000000000009 X21: ffff000008e071b0
> X20: 0000000000000063 X19: ffff000008dda000 X18: 0000000000000006
> X17: 0000ffff83d266c0 X16: ffff0000081c68b8 X15: ffff000008e6cc95
> X14: 0000ffff83cc28f0 X13: ffff000008e6c758 X12: ffff000008dda7a0
> X11: 0000000000000106 X10: 0000000000000002 X9: 0000000000000001
> X8: 0000000000000106 X7: 0000000000000000 X6: ffff800022f337a4
> X5: 00000000000047d4 X4: 0000000000000000 X3: 0000000000000000
> X2: ffff000008dda7b8 X1: 0000000000000000 X0: 0000000000000001
>
> #7 [ffff800020b0bd40] sysrq_handle_crash at ffff000008457fc8
> #8 [ffff800020b0bd50] __handle_sysrq at ffff000008458644
> #9 [ffff800020b0bd90] write_sysrq_trigger at ffff000008458ac0
> #10 [ffff800020b0bdb0] proc_reg_write at ffff00000822541c
> #11 [ffff800020b0bdd0] __vfs_write at ffff0000081c4774
> #12 [ffff800020b0be50] vfs_write at ffff0000081c5588
> #13 [ffff800020b0be90] sys_write at ffff0000081c68fc
> #14 [ffff800020b0bed0] el0_svc_naked at ffff000008084e70
> --- <Exception in user> ---
> PC: 0000ffff83d7b1e8 LR: 0000ffff83d2d700 SP: 0000fffffe197460
> X29: 0000fffffe197460 X28: 0000000000000000 X27: 0000000000000000
> X26: 000000001e9e40c8 X25: 00000000004c9be8 X24: 00000000004ec000
> X23: 0000000000000001 X22: 0000000000000002 X21: 0000ffff83e02500
> X20: 000000001e9da808 X19: 0000000000000002 X18: 0000000000000015
> X17: 0000ffff83d266c0 X16: 0000000000000000 X15: 0015a60d0a000000
> X14: 0000ffff83cc28f0 X13: 0000000000000018 X12: 0000000000000008
> X11: 0101010101010101 X10: 7f7f7f7f7f7f7f7f X9: fefefefeff00ff62
> X8: 0000000000000040 X7: fefefefefefefefe X6: 000000001e9da808
> X5: 0000ffff83d055c8 X4: 0000000000000000 X3: 0000000000000000
> X2: 0000000000000002 X1: 000000001e9da808 X0: 0000000000000001
> ORIG_X0: 0000000000000001 SYSCALLNO: 40 PSTATE: 20000000
>
> PID: 0 TASK: ffff8000218c3200 CPU: 4 COMMAND: "swapper/4"
> #0 [ffff8000218dbf60] arch_cpu_idle at ffff0000080857c0
> #1 [ffff8000218dbf70] cpu_startup_entry at ffff0000080f26cc
> #2 [ffff8000218dbfd0] secondary_start_kernel at ffff00000808e1ec
>
> PID: 0 TASK: ffff8000218c3e80 CPU: 5 COMMAND: "swapper/5"
> #0 [ffff8000218dff60] arch_cpu_idle at ffff0000080857c0
> #1 [ffff8000218dff70] cpu_startup_entry at ffff0000080f26cc
> #2 [ffff8000218dffd0] secondary_start_kernel at ffff00000808e1ec
>
> PID: 0 TASK: ffff8000218c4b00 CPU: 6 COMMAND: "swapper/6"
> #0 [ffff8000218ebf60] arch_cpu_idle at ffff0000080857c0
> #1 [ffff8000218ebf70] cpu_startup_entry at ffff0000080f26cc
> #2 [ffff8000218ebfd0] secondary_start_kernel at ffff00000808e1ec
>
> PID: 0 TASK: ffff8000218c5780 CPU: 7 COMMAND: "swapper/7"
> #0 [ffff8000218eff60] arch_cpu_idle at ffff0000080857c0
> #1 [ffff8000218eff70] cpu_startup_entry at ffff0000080f26cc
> #2 [ffff8000218effd0] secondary_start_kernel at ffff00000808e1ec
> crash>
>
> What happened? This can't possibly be what you intended, is it?
>
> Dave
>
> --
> Crash-utility mailing list
> Crash-utility(a)redhat.com
>
https://www.redhat.com/mailman/listinfo/crash-utility
>
--
Crash-utility mailing list
Crash-utility(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility