I've tested makedumpfile from -proposed on Focal and it looks good to
me.
Using a vmcore file with 2TB as an input:
- Original makedumpfile 1.6.7-1ubuntu2.4 fails:
ubuntu@kdump-instance:~$ sudo apt-cache policy makedumpfile
makedumpfile:
Installed: 1:1.6.7-1ubuntu2.4
Candidate: 1:1.6.7-1ubuntu2.4
Version table:
*** 1:1.6.7-1ubuntu2.4 500
500 http://phx-ad-3.clouds.archive.ubuntu.com/ubuntu focal-updates/main
amd64 Packages
100 /var/lib/dpkg/status
1:1.6.7-1ubuntu2 500
500 http://phx-ad-3.clouds.archive.ubuntu.com/ubuntu focal/main amd64
Packages
ubuntu@kdump-instance:/mnt/202204202351$ makedumpfile -c -d 31
./vmcore.202204202351 ./dump-incomplete-fabio
The kernel version is not supported.
The makedumpfile operation may be incomplete.
Checking for memory holes : [100.0 %] /
__vtop4_x86_64: Can't get a valid pmd_pte.
readmem: Can't convert a virtual address(ffffecff81800000) to physical address.
readmem: type_addr: 0, addr:ffffecff81800000, size:32768
__exclude_unnecessary_pages: Can't read the buffer of struct page.
create_2nd_bitmap: Can't exclude unnecessary pages.
makedumpfile Failed.
- Makedumpfile 1.6.7-1ubuntu2.5 from proposed works:
ubuntu@kdump-instance:~$ sudo apt-cache policy makedumpfile
makedumpfile:
Installed: 1:1.6.7-1ubuntu2.5
Candidate: 1:1.6.7-1ubuntu2.5
Version table:
*** 1:1.6.7-1ubuntu2.5 500
500 http://archive.ubuntu.com/ubuntu focal-proposed/main amd64 Packages
100 /var/lib/dpkg/status
1:1.6.7-1ubuntu2.4 500
500 http://phx-ad-3.clouds.archive.ubuntu.com/ubuntu focal-updates/main
amd64 Packages
1:1.6.7-1ubuntu2 500
500 http://phx-ad-3.clouds.archive.ubuntu.com/ubuntu focal/main amd64
Packages
ubuntu@kdump-instance:/mnt/202204202351$ makedumpfile -c -d 31
./vmcore.202204202351 ./dump-incomplete-fabio
The kernel version is not supported.
The makedumpfile operation may be incomplete.
Copying data : [100.0 %] - eta:
0s
The dumpfile is saved to ./dump-incomplete-fabio.
makedumpfile Completed.
It reduced the dump file from 2TB down to 4.5G:
ubuntu@kdump-instance:/mnt/202204202351$ ls -lh vmcore.202204202351
-r-------- 1 ubuntu ubuntu 2.0T Apr 21 2022 vmcore.202204202351
ubuntu@kdump-instance:/mnt/202204202351$ ls -lh dump-incomplete-fabio
-rw------- 1 ubuntu ubuntu 4.5G Dec 12 14:23 dump-incomplete-fabio
The reason for having a vmcore file with the size of the installed RAM
in the comment reported by Heather, is that you are forcing makedumpfile
to fail, by providing "-c -d 32" (which is a level that doesn't exist,
as the max is 31) or moving the makedumpfile binary away, so kdump fails
over to cp, which hence will produce the vmcore file with the size of
the installed RAM.
Let me know if this is enough to have focal verification concluded.
** Tags removed: verification-failed-focal verification-needed
** Tags added: verification-done-focal
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to makedumpfile in Ubuntu.
https://bugs.launchpad.net/bugs/1970672
Title:
makedumpfile falls back to cp with "__vtop4_x86_64: Can't get a valid
pmd_pte."
Status in makedumpfile package in Ubuntu:
Fix Released
Status in makedumpfile source package in Focal:
Fix Committed
Bug description:
[Impact]
* On Focal with an HWE (>=5.12) kernel, makedumpfile can sometimes fail with
"__vtop4_x86_64: Can't get a valid pmd_pte."
* makedumpfile falls back to cp for the dump, resulting in extremely
large vmcores. This can impact both collection and analysis due to
lack of space for the resulting vmcore.
* This is fixed in upstream commit present in versions 1.7.0 and 1.7.1:
https://github.com/makedumpfile/makedumpfile/commit/646456862df8926ba10dd7330abf3bf0f887e1b6
commit 646456862df8926ba10dd7330abf3bf0f887e1b6
Author: Kazuhito Hagio <[email protected]>
Date: Wed May 26 14:31:26 2021 +0900
[PATCH] Increase SECTION_MAP_LAST_BIT to 5
* Required for kernel 5.12
Kernel commit 1f90a3477df3 ("mm: teach pfn_to_online_page() about
ZONE_DEVICE section collisions") added a section flag
(SECTION_TAINT_ZONE_DEVICE) and causes makedumpfile an error on
some machines like this:
__vtop4_x86_64: Can't get a valid pmd_pte.
readmem: Can't convert a virtual address(ffffe2bdc2000000) to physical
address.
readmem: type_addr: 0, addr:ffffe2bdc2000000, size:32768
__exclude_unnecessary_pages: Can't read the buffer of struct page.
create_2nd_bitmap: Can't exclude unnecessary pages.
Increase SECTION_MAP_LAST_BIT to 5 to fix this. The bit had not
been used until the change, so we can just increase the value.
Signed-off-by: Kazuhito Hagio <[email protected]>
[Test Plan]
* Confirm that makedumpfile works as expected by triggering a kdump.
* Confirm that the patched makedumpfile works as expected on a system
known to experience the issue.
* Confirm that the patched makedumpfile is able to work with a cp-
generated known affected vmcore to compress it. The unpatched version
fails.
[Where problems could occur]
* This change could adversely affect the collection/compression of
vmcores during a kdump situation resulting in fallback to cp.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/makedumpfile/+bug/1970672/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp