Initial implementation of kdump for ARM
Get series with b4
b4 am [email protected]Versions newest first
- v2 Latest0 of 8 patches 0 repliesNew
Patches in v2 No applies recorded yet
None of the 8 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.
Cover letter [PATCH v2 0/8] Initial implementation of kdump for ARM
Quoted 32 lines · Russell King - ARM Linux
Quoted 12 lines · Per Fransson
Quoted 11 lines · Russell King - ARM Linux
Quoted 6 lines · Per Fransson
In
machine_kexecan identity mapping is set up for the user space part of the virtual address space, through a call tosetup_mm_for_reboot(). I believe this mapping is only necessary because the MMU is kept on and if the kexec is done to facilitate the collection of a dump it would be nice if a large part of the page table for the crashing context has not been corrupted. Don't you agree?No. The identity mapping is there so that we can safely disable the MMU and jump to the intended address.
Quoted 6 lines
Quoted 4 lines
There is an implementation defined delay between writing the control register and the point in the instruction stream that the effect of that write is seen.
But the identity mapping is only set up for user space part.
That's because we're normally calling back into the boot loader.
Quoted 3 lines
It needs to
be set up around the code which turns off the MMU for the case when there is no delay at all.There is always a delay as the ARM architecture is pipelined. By the time the instruction which writes to the control register has got to the writeback stage, the following instruction has long since been fetched from memory, and has probably been decoded and partially executed.
Quoted 8 lines
Quoted 2 lines
And it would still be nice to not corrupt the page table of the crashing context.
What you're then asking for is the crashing kernel to allocate 16K of memory to setup some page tables, and then context switch to that table so that the MMU can be turned off.
That's never going to be anywhere near reliable.
Can this be addresses by allocating the memory at the time that kdump is loaded rather than when it is executed (because of a crash)?
IIRC, x86 uses a double page table approach and it is done reliably.