Using an arm64 board, 2GB of memory, makedumpfile 1.6.2, and the v4.11 kernel, I ran into an issue where the dumpfile was not excluding any pages thus creating a huge vmcore. I found that my board had a 1GB mapping in the PGD of 0xffffffc040000000. This isn't my area of expertise but I think I've pieced together how the kernel handles page tables. cat /proc/kallsyms |grep swapper_pg ffffff8008a66000 B swapper_pg_dir 00a66800: 7fff9003 // pgd for virtual addr 0xffffffc000000000 00a66804: 00000000 00a66808: 40000711 // pgd for virtual addr 0xffffffc040000000 00a6680c: 00e80000 If I understand everything correctly then the pgd at 0xa66808 is a section and not a pointer to a PMD, thus it should have been handled as a section instead of trying to drill down to a PTE by the code in arch/arm64.c Please find debug below and a proposed (probably not optimal) fix attached. Thank you. /usr/sbin/makedumpfile -F -c -d 31 --message-level=31 /proc/vmcore > /dev/null sadump: unsupported architecture LOAD (0) phys_start : 80000 phys_end : a58000 virt_start : ffffff8008080000 virt_end : ffffff8008a58000 LOAD (1) phys_start : 0 phys_end : 6000000 virt_start : ffffffc000000000 virt_end : ffffffc006000000 LOAD (2) phys_start : 6800000 phys_end : 8000000 virt_start : ffffffc006800000 virt_end : ffffffc008000000 LOAD (3) phys_start : a000000 phys_end : 80000000 virt_start : ffffffc00a000000 virt_end : ffffffc080000000 Linux kdump page_size : 4096 phys_base : 0 max_mapnr : 80000 There is enough free memory to be done in one cycle. Buffer size for the cyclic mode: 131072 kimage_voffset : ffffff8008000000 max_physmem_bits : 30 section_size_bits: 1e page_offset : ffffffc000000000 num of NODEs : 1 Memory type : SPARSEMEM_EX readmem: Can't convert a virtual address(ffffffc07fff6000) to physical address. readmem: type_addr: 0, addr:ffffffc07fff6000, size:16 section_mem_map_addr: Can't get a struct mem_section(ffffffc07fff6000). mem_map (0) mem_map : 0 pfn_start : 0 pfn_end : 40000 readmem: Can't convert a virtual address(ffffffc07fff6010) to physical address. readmem: type_addr: 0, addr:ffffffc07fff6010, size:16 section_mem_map_addr: Can't get a struct mem_section(ffffffc07fff6010). mem_map (1) mem_map : 0 pfn_start : 40000 pfn_end : 80000 mmap() is available on the kernel. Checking for memory holes : [100.0 %] | STEP [Checking for memory holes ] : 0.017147 seconds Excluding unnecessary pages : [100.0 %] \ STEP [Excluding unnecessary pages] : 0.000034 seconds Bradley Bolen (1): makedumpfile: arm64: Fix page table walk of 1GB section arch/arm64.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) -- 1.9.3