[PATCH v33 00/14] add kdump support
Goel, Sameer
sgoel at codeaurora.org
Wed Mar 22 09:55:55 PDT 2017
I tested this patch set on a QDT2400 device with 4k 4-level setup. This patchset worked fine with maxcpus=1 on the first kernel.
I don't think this is an issue with the patchset, I am still triaging this issue further.
On 3/15/2017 3:56 AM, AKASHI Takahiro wrote:
> This patch series adds kdump support on arm64.
>
> To load a crash-dump kernel to the systems, a series of patches to
> kexec-tools[1] are also needed. Please use the latest one, v6 [2].
> For your convinience, you can pick them up from:
> https://git.linaro.org/people/takahiro.akashi/linux-aarch64.git arm64/kdump
> https://git.linaro.org/people/takahiro.akashi/kexec-tools.git arm64/kdump
>
> To examine vmcore (/proc/vmcore) on a crash-dump kernel, you can use
> - crash utility (v7.1.8 or later) [3]
>
> I tested this patchset on fast model and hikey.
>
> The previous versions were also:
> Tested-by: Pratyush Anand <panand at redhat.com> (v32, mustang and seattle)
> Tested-by: James Morse <james.morse at arm.com> (v27/v32?, Juno)
> Tested-by: Sameer Goel (v32, QDT2400)
>
> Changes for v33 (Mar 15, 2017)
> o rebased to v4.11-rc2+
> o arch_kexec_(un)protect_crashkres() now protects loaded data segments
> only along with moving copying of control_code_page back to machine_kexec()
> (patch #6)
> o reduce the size of hibernation image when kdump and hibernation are
> comfigured at the same time (patch #7)
> o clearify that "linux,usable-memory-range" and "linux,elfcorehdr"
> have values of the size of root node's "#address-cells" and "#size-cells"
> (patch #13)
> o add "efi/libstub/arm*: Set default address and size cells values for
> an empty dtb" from Sameer Goel (patch #14)
> (I didn't test the case though.)
>
> Changes for v32 (Feb 7, 2017)
> o isolate crash dump kernel memory as well as kernel text/data by using
> MEMBLOCK_MAP attribute to and then specifically map them in map_mem()
> (patch #1,6)
> o delete remove_pgd_mapping() and instead modify create_pgd_mapping() to
> allowing for unmapping a kernel mapping (patch #5)
> o correct a commit message as well as a comment in the source (patch#10)
> o other trivial changes after Mark's comments (patch#3,4)
>
> Changes for v31 (Feb 1, 2017)
> o add/use remove_pgd_mapping() instead of modifying (__)create_pgd_mapping()
> to protect crash dump kernel memory (patch #4,5)
> o fix an issue at the isolation of crash dump kernel memory in
> map_mem()/__map_memblock(), adding map_crashkernel() (patch#5)
> o preserve the contents of crash dump kernel memory around hibernation
> (patch#6)
>
> Changes for v30 (Jan 24, 2017)
> o rebased to Linux-v4.10-rc5
> o remove "linux,crashkernel-base/size" from exported device tree
> o protect memory region for crash-dump kernel (adding patch#4,5)
> o remove "in_crash_kexec" variable
> o and other trivial changes
>
> Changes for v29 (Dec 28, 2016)
> o rebased to Linux-v4.10-rc1
> o change asm constraints in crash_setup_regs() per Catalin
>
> Changes for v28 (Nov 22, 2016)
> o rebased to Linux-v4.9-rc6
> o revamp patch #1 and merge memblock_cap_memory_range() with
> memblock_mem_limit_remove_map()
>
> Changes for v27 (Nov 1, 2016)
> o rebased to Linux-v4.9-rc3
> o revert v26 change, i.e. revive "linux,usable-memory-range" property
> (patch #2/#3, updating patch #9)
> o minor fixes per review comments (patch #3/#4/#6/#8)
> o re-order patches and improve commit messages for readability
>
> Changes for v26 (Sep 7, 2016):
> o Use /reserved-memory instead of "linux,usable-memory-range" property
> (dropping v25's patch#2 and #3, updating ex-patch#9.)
>
> Changes for v25 (Aug 29, 2016):
> o Rebase to Linux-4.8-rc4
> o Use memremap() instead of ioremap_cache() [patch#5]
>
> Changes for v24 (Aug 9, 2016):
> o Rebase to Linux-4.8-rc1
> o Update descriptions about newly added DT proerties
>
> Changes for v23 (July 26, 2016):
>
> o Move memblock_reserve() to a single place in reserve_crashkernel()
> o Use cpu_park_loop() in ipi_cpu_crash_stop()
> o Always enforce ARCH_LOW_ADDRESS_LIMIT to the memory range of crash kernel
> o Re-implement fdt_enforce_memory_region() to remove non-reserve regions
> (for ACPI) from usable memory at crash kernel
>
> Changes for v22 (July 12, 2016):
>
> o Export "crashkernel-base" and "crashkernel-size" via device-tree,
> and add some descriptions about them in chosen.txt
> o Rename "usable-memory" to "usable-memory-range" to avoid inconsistency
> with powerpc's "usable-memory"
> o Make cosmetic changes regarding "ifdef" usage
> o Correct some wordings in kdump.txt
>
> Changes for v21 (July 6, 2016):
>
> o Remove kexec patches.
> o Rebase to arm64's for-next/core (Linux-4.7-rc4 based).
> o Clarify the description about kvm in kdump.txt.
>
> See the link [4] for older changes.
>
>
> [1] https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git
> [2] http://lists.infradead.org/pipermail/kexec/2017-March/018356.html
> [3] https://github.com/crash-utility/crash.git
> [4] http://lists.infradead.org/pipermail/linux-arm-kernel/2016-June/438780.html
>
> AKASHI Takahiro (12):
> memblock: add memblock_clear_nomap()
> memblock: add memblock_cap_memory_range()
> arm64: limit memory regions based on DT property, usable-memory-range
> arm64: kdump: reserve memory for crash dump kernel
> arm64: mm: allow for unmapping part of kernel mapping
> arm64: kdump: protect crash dump kernel memory
> arm64: hibernate: preserve kdump image around hibernation
> arm64: kdump: implement machine_crash_shutdown()
> arm64: kdump: add VMCOREINFO's for user-space tools
> arm64: kdump: provide /proc/vmcore file
> arm64: kdump: enable kdump in defconfig
> Documentation: kdump: describe arm64 port
>
> James Morse (1):
> Documentation: dt: chosen properties for arm64 kdump
>
> Sameer Goel (1):
> efi/libstub/arm*: Set default address and size cells values for an
> empty dtb
>
> Documentation/devicetree/bindings/chosen.txt | 45 +++++++
> Documentation/kdump/kdump.txt | 16 ++-
> arch/arm64/Kconfig | 11 ++
> arch/arm64/configs/defconfig | 1 +
> arch/arm64/include/asm/hardirq.h | 2 +-
> arch/arm64/include/asm/kexec.h | 52 +++++++-
> arch/arm64/include/asm/pgtable-prot.h | 1 +
> arch/arm64/include/asm/smp.h | 2 +
> arch/arm64/kernel/Makefile | 1 +
> arch/arm64/kernel/crash_dump.c | 71 +++++++++++
> arch/arm64/kernel/hibernate.c | 10 +-
> arch/arm64/kernel/machine_kexec.c | 170 +++++++++++++++++++++++--
> arch/arm64/kernel/setup.c | 7 +-
> arch/arm64/kernel/smp.c | 63 ++++++++++
> arch/arm64/mm/init.c | 181 +++++++++++++++++++++++++++
> arch/arm64/mm/mmu.c | 107 ++++++++--------
> drivers/firmware/efi/libstub/fdt.c | 28 ++++-
> include/linux/memblock.h | 2 +
> mm/memblock.c | 56 ++++++---
> 19 files changed, 745 insertions(+), 81 deletions(-)
> create mode 100644 arch/arm64/kernel/crash_dump.c
>
--
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project.
More information about the linux-arm-kernel
mailing list