[Crash-utility] [ANNOUNCE] crash version 7.1.4 is available

Dave Anderson anderson at redhat.com
Wed Dec 16 16:35:47 UTC 2015


Download from: http://people.redhat.com/anderson
                 or
               https://github.com/crash-utility/crash/releases

The master branch serves as a development branch that will contain all 
patches that are queued for the next release:

  $ git clone git://github.com/crash-utility/crash.git


Changelog:

 - Fix for the ARM64 "vtop" command when translating kernel virtual
   addresses within a 2MB or 512MB huge page in which the PGD or PMD 
   contains software-defined PTE bits.  Without the patch, the "PAGE:" 
   address value will show the software-defined bits, the command will 
   not display the related page structure translation, and will end with 
   the message "WARNING: sparsemem: invalid section number: <number>".
   (Johan.Erlandsson at sonymobile.com, anderson at redhat.com)

 - Fix for the X86_64 "bt" command in Linux 4.2 and later kernels 
   that are configured with both CONFIG_HAVE_COPY_THREAD_TLS and 
   CONFIG_FRAME_POINTER.  Without the patch, the fact that the kernel
   was compiled with framepointers is not recognized, which may result
   in backtraces containing stale frame references.
   (anderson at redhat.com)
   
 - Fix for the "dis" command to support three new x86 instruction 
   extensions that have been added to the Intel instruction set for 
   hardware platforms that support them.  The newly-added instructions 
   "clflushopt", "clwb", and "pcommit" prepend 0x66 as a prefix byte to
   the "clflush", "xsaveopt" and "sfence" instructions respectively.
   Without the patch:

     "clflushopt" is disassembled as: "data16" followed by "clflush"
     "clwb" is disassembled as: "data16" followed by "xsaveopt" 
     "pcommit" is disassembled as: "data16" followed by "sfence"  

   The "clflushopt" instruction was introduced in Linux 3.15 in the
   clflushopt() function.  The "clwb" and "pcommit" instructions were 
   introduced in Linux 4.1 in the clwb() and pcommit_sfence() functions.
   (anderson at redhat.com)

 - Fix for the extensions/trace.c extension module for Linux 4.2 and
   later kernels.  Without the patch, the module fails to load, with
   the message "failed to init the offset, struct:ftrace_event_call,
   member:list".
   (anderson at redhat.com)

 - For many years, Xen Dom0 dumps could only be saved in ELF format. 
   Since makedumpfile commit 349a0ed1, it is now possible to save Xen
   dumps in compressed kdump format.  This patch set adds support for 
   these files.  Two new files, xen_dom0.c and xen_dom0.h, have been
   added to provide the common functionality required by both ELF and
   compressed kdump formats.
   (ptesarik at suse.cz)

 - Since Linux v4.1, specifically, "MIPS: Rearrange PTE bits into fixed
   positions.", commit be0c37c985eddc46d0d67543898c086f60460e2e, the
   MIPS PTE bits are at fixed locations.  Since they are macros in the 
   kernel, this patch adds an explicit kernel version check in order to
   determine and set their values.
   (rabinv at axis.com)

 - Display a machine-type mismatch warning if a little-endian PPC64 
   compressed kdump created by makedumpfile(8) is used as an argument
   with a non-PPC64 crash utility binary.  Without the patch, the 
   dumpfile is accepted, and the session subsequently fails with a 
   message indicating that that the vmlinux and dumpfile do not match.
   (anderson at redhat.com)

 - Fix for bitmap-handling in SADUMP dumpfiles, which associate each bit
   in a bitmap with a physical page in the reverse order that is used
   in kdump-compressed format.  The bug had not been detected for a long
   time because bitmaps in SADUMP formats consist mostly of 0x00 and 
   0xff excluding a very limited amount of memory space for firmware.
   (indou.takao at jp.fujitsu.com, d.hatayama at jp.fujitsu.com)

 - Fix for the behavior of the --zero_excluded option when used with
   SADUMP dumpfiles.  Without the patch, the behavior of --zero_excluded
   option is the opposite to what is expected: reads of filtered pages 
   return successfully with zero-filled memory, while reads of filtered 
   filtered pages fail when --zero_excluded option has been specified. 
   (d.hatayama at jp.fujitsu.com)

 - Fix for the "kmem -i" command in Linux 2.6.27 and later kernels to 
   prevent the possibility that an arbitrary address may be accessed 
   when calculating the number of total huge pages.  Without the patch,
   the command's "COMMIT LIMIT" and "COMMITTED" values may be invalid.
   (atomlin at redhat.com)

 - Added recognition of the new DUMP_DH_EXCLUDED_VMEMMAP flag in the 
   header of compressed kdumps, which is set by the new -e option to
   the makedumpfile(8) facility.  The -e option excludes kernel pages
   that contain nothing but kernel page structures for pages that are 
   not being included in the dump.  If the bit is set in the dumpfile, 
   the crash utility will issue a warning that the dumpfile is known to
   be incomplete during initialization, just prior to the system banner 
   display.
   (anderson at redhat.com)

 - Fix for the handling of compound pages in Linux 4.4 and later kernels,
   which contain this kernel commit:

     commit 1d798ca3f16437c71ff63e36597ff07f9c12e4d6
     mm: make compound_head() robust

   The commit above removes the PG_tail and PG_compound page.flags bits
   and the page.first_page member, and introduces a page.compound_head
   member, which is a pointer to the head page and whose bit 0 acts as 
   the tail flag.  Without the patch, a SLAB or SLUB warning message 
   that indicates "cannot determine how compound pages are linked" is 
   displayed during initialization, and any command that tracks compound
   pages will be affected.
   (anderson at redhat.com)

 - Fix for the handling of dynamically-sized task_struct structures in
   Linux 4.2 and later kernels, which contain these commits:

     commit 5aaeb5c01c5b6c0be7b7aadbf3ace9f3a4458c3d
     x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT and 
                     use it on x86
     commit 0c8c0f03e3a292e031596484275c14cf39c0ab7a
     x86/fpu, sched: Dynamically allocate 'struct fpu'

   Without the patch, when running on a filtered kdump dumpfile, it is
   possible that error messages like this will be seen when gathering 
   the tasks running on a system: "crash: page excluded: kernel virtual 
   address: <task_struct address>  type: "fill_task_struct".
   (ats-kumagai at wm.jp.nec.com)

 - Fix for the "kmem -s <address>" command in Linux 3.13 and later
   kernels configured with CONFIG_SLAB.  Without the patch, if the
   address argument is contained within an object in a tail page of a 
   multi-page slab, the command fails with the message "kmem: address 
   is not allocated in slab subsystem: <address>".  Furthermore, in
   Linux 4.4 and later kernels configured with CONFIG_SLAB, addresses
   that are contained within an object in a tail page of a multi-page 
   slab will not be marked by their slab cache name by the "rd -S" and
   "bt -F" commands.
   (anderson at redhat.com)

 - Fix for a segmentation violation when attempting to run live on a
   a system without the crash.ko memory driver, and whose kernel was 
   configured with CONFIG_STRICT_DEVMEM.  Without the patch, if any 
   -d<value> is entered on the command line, the crash session fails
   during initialization.
   (dmair at suse.com)

 - Update for the determination of the ARM64 page size for kernels
   containing this Linux 4.4 commit:

     commit 9d372c9fab34cd8803141871195141995f85c7f7
     arm64: Add page size to the kernel image header

   Without the patch, the kernel page size is calculated by looking
   at the size of the "swapper_pg_dir" page directory.  With this 
   update, the page size can be determined by checking a flag built
   into the kernel image header, available in the "_kernel_flags_le"
   absolute symbol.
   (drjones at redhat.com)

 - Fix for the handling of ARM and ARM64 QEMU-generated ELF dumpfiles 
   and compressed kdump clones.  The patch utilizes the NT_PRSTATUS 
   notes in the dumpfile headers instead of reading them from the 
   kernel's "crash_notes", which are not initialized when QEMU generates
   a dumpfile.  Without the patch, these warning messages are displayed
   during session initialization:

     WARNING: invalid note (n_type != NT_PRSTATUS)   
     WARNING: cannot retrieve registers for active tasks

   and running "bt" on an active task causes a segmentation violation.
   (drjones at redhat.com)

 - Update to the previous QEMU-specific patch to handle kdump dumpfiles
   which have offline cpus, and therefore will not contain associated 
   NT_PRSTATUS notes in the dumpfile header.  Without the patch, if 
   there are any offline cpus, a segmentation violation is generated 
   during session initialization.
   (anderson at redhat.com)

 - The s390 stand-alone dump tools may write the kernel memory directly
   to a block device.  When running the crash utility against such a 
   block device, a misleading warning message such as this is displayed:

     WARNING: /dev/sda1: may be truncated or incomplete
     PT_LOAD p_offset: 16384
     p_filesz: 5497558138880
     bytes required: 5497558155264
     dumpfile size: 0

   With the patch, the warning message above will be replaced by a note
   using this format:

     NOTE: /dev/sda1: No dump complete check for block devices

   (holzheu at linux.vnet.ibm.com)

 - Map CTRL-l to clear the screen while in vi insertion mode.  Without
   the patch, it displays "^L".
   (kwalker at redhat.com)

 - Introduced a general-purpose handler to register data structures that
   the kernel has dynamically downsized from the size indicated by the 
   debuginfo data.  At this time, only "kmem_cache" and "task_struct" 
   structures that have been downsized are registered, but others may be
   added in the future.  If a downsized data structure is passed to gdb
   for display, gdb will request a read of the "full" data structure, 
   which may flow into a memory region that was either filtered by 
   makedumpfile(8), or perhaps into non-existent memory, thereby killing
   the generating command immediately due to a partial read.  With this
   patch, commands such as "struct" and "task" that reference downsized 
   data structures will have their reads flagged to return successfully
   if partial read error occurs. 
   (anderson at redhat.com)

 - Fix for Linux 3.18 and later 32-bit ARM kernels that are configured 
   with CONFIG_SLAB which contain percpu array_cache structures that 
   were allocated with vmalloc().  Without the patch, during session 
   initialization there will be error messages that indicate "crash: 
   kmem_cache: <vaddr>: invalid array_cache pointer: <vaddr>", and 
   during runtime, the "kmem -[sS]" commands will show kmem_cache lines
   that marked as "[INVALID/CORRUPTED]".
   (anderson at redhat.com)

 - Added a new "list -l <offset>" option that can only be used in
   conjunction with "-s", and requires that the "start" address is the
   address of a list_head, or other similar list linkage structure whose
   first member points to the next linkage structure.  The "-l <offset>" 
   argument is the offset of the embedded list linkage structure in the
   specified "-s" data structure; it can be either a number of bytes or
   expressed in "struct.member" format.
   (anderson at redhat.com)

 - Enhanced the debug-only display of the first kernel data items read 
   during session initialization.  This includes the system's cpu maps,
   xtime, and utsname data.  These require at least "-d1" as a command
   line option value, and are primarily useful as an aide for debugging
   suspect dumpfiles that fail during session initialization.
   (anderson at redhat.com)

 - Added "print_array" as a new internal variable that may be turned 
   on/off with the "set" command.  When set to "on", gdb's printing of
   arrays will be set to "pretty", so that the display of each array 
   element will consume one line.
   (anderson at redhat.com)

 - Introduction of the "sys -i" option, which displays the kernel's DMI
   identification string data if available.
   (atomlin at redhat.com, anderson at redhat.com)

 - Fix for "crash --osrelease" on Xen kernels that have both VMCOREINFO
   and VMCOREINFO_XEN ELF notes.  Without the patch, the command returns
   "(unknown)".
   (anderson at redhat.com, dietmar.hahn at ts.fujitsu.com)




More information about the Crash-utility mailing list