Hi Denys, On Friday 07 April 2017 05:22 PM, Denys Zagorui wrote: > Hello, > > I was testing kexec/kdump on ls2085ardb using kexec-tools from: > > https://git.linaro.org/people/takahiro.akashi/kexec-tools.git/log/?h=arm64/kdump > > > and kernel from: > > https://git.linaro.org/people/takahiro.akashi/linux-aarch64.git/log/?h=arm64/kdump > > > ------------------------------------------------------------------------------------ > > > Kernel required configs: > > CONFIG_KEXEC=y > CONFIG_SYSFS=y > CONFIG_DEBUG_INFO=y > CONFIG_CRASH_DUMP=y > CONFIG_PROC_VMCORE=y > > ------------------------------------------------------------------------------------ > > Starting kernel ... > > [ 0.000000] Booting Linux on physical CPU 0x0 > [ 0.000000] Linux version 4.11.0-rc3 (denyszagorui at kbp1-ldl-f65370) > (gcc version 6.2.0 (GCC) ) #4 SMP PREEMPT Tue Apr 4 17:08:07 EEST 2017 > [ 0.000000] Boot CPU: AArch64 Processor [411fd071] > [ 0.000000] earlycon: uart8250 at MMIO 0x00000000021c0600 (options '') > [ 0.000000] bootconsole [uart8250] enabled > [ 0.000000] efi: Getting EFI parameters from FDT: > [ 0.000000] efi: UEFI not found. > [ 0.000000] crashkernel reserved: 0x00000000bfe00000 - > 0x00000000ffe00000 (1024 MB) > > ..... > > [ 0.000000] Kernel command line: console=ttyS1,115200 > root=/dev/mmcblk0p1 rootwait earlycon=uart8250,mmio,0x21c0600, > ramdisk_size=0x2000000 default_hugepagesz=2m hugepagesz=2m hugepages=256 > crashkernel=1024M > ------------------------------------------------------------------------------------ > > > I was trying two modes: direct boot (kexec -l than kexec -e) and kdump > (kexec -p than echo c > /proc/sysrq-trigger). > > Direct boot: > ------------------------------------------------------------------------------------ > > root at ls2085ardb:~# kexec -l /boot/Image --initrd=/boot/initrd.cpio > --command-line="console=ttyS1,115200 root=/dev/ram0 > earlycon=uart8250,mmio,0x21c0600, 1 maxcpus=1 reset_devices" -d > arch_process_options:147: command_line: console=ttyS1,115200 > root=/dev/ram0 earlycon=uart8250,mmio,0x21c0600, 1 maxcpus=1 reset_devices > arch_process_options:149: initrd: /boot/initrd.cpio > arch_process_options:150: dtb: (null) > Try gzip decompression. > Try LZMA decompression. > lzma_decompress_file: read on /boot/Image of 65536 bytes failed > kernel: 0xffffac0f8010 kernel_size: 0xe80a00 > get_memory_ranges_iomem_cb: 0000000080000000 - 00000000ffffffff : System > RAM > get_memory_ranges_iomem_cb: 0000008080000000 - 00000083bfffffff : System > RAM > elf_arm64_probe: Not an ELF executable. > image_arm64_load: kernel_segment: 0000000080000000 > image_arm64_load: text_offset: 0000000000080000 > image_arm64_load: image_size: 0000000000eea000 > image_arm64_load: phys_offset: 0000000080000000 > image_arm64_load: vp_offset: ffffffffffffffff > image_arm64_load: PE format: yes > ..... > kexec_load: entry = 0x817ed660 flags = 0xb70000 > nr_segments = 4 > segment[0].buf = 0xffffac0f8010 > segment[0].bufsz = 0xe80a00 > segment[0].mem = 0x80080000 > segment[0].memsz = 0xeea000 > segment[1].buf = 0xffffab879010 > segment[1].bufsz = 0x87e800 > segment[1].mem = 0x80f6a000 > segment[1].memsz = 0x87f000 > segment[2].buf = 0x377b3e80 > segment[2].bufsz = 0x3d64 > segment[2].mem = 0x817e9000 > segment[2].memsz = 0x4000 > segment[3].buf = 0x377b7f20 > segment[3].bufsz = 0x31c8 > segment[3].mem = 0x817ed000 > segment[3].memsz = 0x4000 > kexec_load failed: Device or resource busy Since kexec_load failed, so no meaning of trying `kexec -e`. However, not sure whats going here. Can you also share dmesg (kernel console log)? Are you using spin-table cpu enable method? If yes, do you have cpu_die() implemented? ~Pratyush > entry = 0x817ed660 flags = 0xb70000 > nr_segments = 4 > segment[0].buf = 0xffffac0f8010 > segment[0].bufsz = 0xe80a00 > segment[0].mem = 0x80080000 > segment[0].memsz = 0xeea000 > segment[1].buf = 0xffffab879010 > segment[1].bufsz = 0x87e800 > segment[1].mem = 0x80f6a000 > segment[1].memsz = 0x87f000 > segment[2].buf = 0x377b3e80 > segment[2].bufsz = 0x3d64 > segment[2].mem = 0x817e9000 > segment[2].memsz = 0x4000 > segment[3].buf = 0x377b7f20 > segment[3].bufsz = 0x31c8 > segment[3].mem = 0x817ed000 > segment[3].memsz = 0x4000 > root at ls2085ardb:~# kexec -e > Nothing has been loaded! > > Not working for me: > kexec_load failed: Device or resource busy > > > kdump mode: > ------------------------------------------------------------------------------------ > > root at ls2085ardb:~# kexec -p /boot/Image --initrd=/boot/initrd.cpio > --command-line="console=ttyS1,115200 root=/dev/ram0 > earlycon=uart8250,mmio,0x21c0600, 1 maxcpus=1 reset_devices" -d > arch_process_options:147: command_line: console=ttyS1,115200 > root=/dev/ram0 earlycon=uart8250,mmio,0x21c0600, 1 maxcpus=1 reset_devices > arch_process_options:149: initrd: /boot/initrd.cpio > arch_process_options:150: dtb: (null) > Try gzip decompression. > Try LZMA decompression. > lzma_decompress_file: read on /boot/Image of 65536 bytes failed > kernel: 0xffff86fa8010 kernel_size: 0xe80a00 > get_memory_ranges_iomem_cb: 0000000080000000 - 00000000ffffffff : System > RAM > get_memory_ranges_iomem_cb: 0000008080000000 - 00000083bfffffff : System > RAM > elf_arm64_probe: Not an ELF executable. > image_arm64_load: kernel_segment: 00000000bfe00000 > image_arm64_load: text_offset: 0000000000080000 > image_arm64_load: image_size: 0000000000eea000 > image_arm64_load: phys_offset: 0000000080000000 > image_arm64_load: vp_offset: ffffffffffffffff > image_arm64_load: PE format: yes > Reserved memory range > 00000000bfe00000-00000000ffdfffff (0) > Coredump memory ranges > 0000000080000000-00000000bfdfffff (0) > 00000000ffe00000-00000000ffffffff (0) > 0000008080000000-00000083bfffffff (0) > kernel symbol _text vaddr = ffff000008080000 > load_crashdump_segments: page_offset: ffff800000000000 > ... > kexec_load: entry = 0xc15ed660 flags = 0xb70001 > nr_segments = 5 > segment[0].buf = 0xffff86fa8010 > segment[0].bufsz = 0xe80a00 > segment[0].mem = 0xbfe80000 > segment[0].memsz = 0xeea000 > segment[1].buf = 0xffff86729010 > segment[1].bufsz = 0x87e800 > segment[1].mem = 0xc0d6a000 > segment[1].memsz = 0x87f000 > segment[2].buf = 0x36959590 > segment[2].bufsz = 0x3dc7 > segment[2].mem = 0xc15e9000 > segment[2].memsz = 0x4000 > segment[3].buf = 0x3695d690 > segment[3].bufsz = 0x31c8 > segment[3].mem = 0xc15ed000 > segment[3].memsz = 0x4000 > segment[4].buf = 0x36949490 > segment[4].bufsz = 0x400 > segment[4].mem = 0xffdff000 > segment[4].memsz = 0x1000 > > root at ls2085ardb:~# echo c > /proc/sysrroot at ls2085ardb:~# echo c > > /proc/sysrq-trigger > > [ 265.274402] sysrq: SysRq : Trigger a crash > [ 265.278588] Unable to handle kernel NULL pointer dereference at > virtual address 00000000 > ... > [ 265.750726] Starting crashdump kernel... > [ 265.754644] Some CPUs may be stale, kdump will be unreliable. > [ 265.760388] ------------[ cut here ]------------ > [ 265.765006] WARNING: CPU: 0 PID: 1360 at > arch/arm64/kernel/machine_kexec.c:158 machine_kexec+0x44/0x280 > ... > > root at ls2085ardb:~# ls -al /proc/ > ... > -r-------- 1 root root 15048032256 Mar 28 15:36 vmcore > -r--r--r-- 1 root root 0 Mar 28 15:36 vmstat > -r--r--r-- 1 root root 0 Mar 28 15:36 zoneinfo > > After that watched through /proc/vmcore using gdb. Seems to be working > > Best Regards, > Denys >