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 <k-hagio...@nec.com>
  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 <k-hagio...@nec.com>

  [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     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to