• Youling Tang's avatar
    LoongArch: Add kdump support · 4e62d1d8
    Youling Tang authored
    This patch adds support for kdump. In kdump case the normal kernel will
    reserve a region for the crash kernel and jump there on panic.
    
    Arch-specific functions are added to allow for implementing a crash dump
    file interface, /proc/vmcore, which can be viewed as a ELF file.
    
    A user-space tool, such as kexec-tools, is responsible for allocating a
    separate region for the core's ELF header within the crash kdump kernel
    memory and filling it in when executing kexec_load().
    
    Then, its location will be advertised to the crash dump kernel via a
    command line argument "elfcorehdr=", and the crash dump kernel will
    preserve this region for later use with arch_reserve_vmcore() at boot
    time.
    
    At the same time, the crash kdump kernel is also limited within the
    "crashkernel" area via a command line argument "mem=", so as not to
    destroy the original kernel dump data.
    
    In the crash dump kernel environment, /proc/vmcore is used to access the
    primary kernel's memory with copy_oldmem_page().
    
    I tested kdump on LoongArch machines (Loongson-3A5000) and it works as
    expected (suggested crashkernel parameter is "crashkernel=512M@2560M"),
    you may test it by triggering a crash through /proc/sysrq-trigger:
    
     $ sudo kexec -p /boot/vmlinux-kdump --reuse-cmdline --append="nr_cpus=1"
     # echo c > /proc/sysrq-trigger
    Signed-off-by: default avatarYouling Tang <tangyouling@loongson.cn>
    Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
    4e62d1d8
Makefile 3.96 KB