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

Dave Anderson anderson at redhat.com
Mon Jul 13 15:20:30 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:
  
 - Enhancement of the ARM64 backtrace capability.  Without the patch,
   backtraces of the active tasks start at the function that is saved
   in each per-cpu ELF note.  With the patch, the backtrace will start
   at the "crash_kexec" function on the panicking cpu, and at the 
   "crash_save_cpu" function on the other active cpus.  By doing so,
   the backtrace will display the exception handling functions leading
   to crash_kexec() or crash_save_cpu(), as well as the exception frame
   register set as it was at the time of the fatal exception on the 
   panic cpu, or when the shutdown IPI was received on the other cpus. 
   (anderson at redhat.com)

 - Enabled the "bt -R" option on the ARM64 architecture.  Without the
   patch, the option fails with the message "bt: -R option not supported
   or applicable on this architecture or kernel".
   (anderson at redhat.com)

 - Enabled the "crash --log vmcore" command line option on the ARM64 
   architecture.  Without the patch, the option fails with the message 
   "crash: crash --log not implemented on ARM64: TBD".
   (anderson at redhat.com)

 - Fix for the S390X "bt" command when running against kernels that have 
   Linux 4.0 commit 2f859d0dad818765117c1cecb24b3bc7f4592074, which
   removes the "async_stack" and "panic_stack" members from the "pcpu" 
   structure.  Without the patch, backtraces of active tasks that were
   executing I/O or machine check interrupts are not displayed, while 
   other tasks may generate fatal readmem() errors of type "readmem_ul".
   (holzheu at linux.vnet.ibm.com)

 - Fix to prevent an unnecessary/temporary GETBUF() memory allocation
   of 1 MB by the dump_mem_map() utility function when the kernel is 
   configured with CONFIG_SPARSEMEM.
   (yangoliver at gmail.com)

 - Speed up the "crash --osrelease" option when used with "flattened" 
   format dumpfiles.  Without the patch, the rearranged data array 
   initialization is performed before the vmcoreinfo data in the 
   header is read, which can take a significant amount of time with 
   large dumpfiles.  The patch simply looks for the appropriate
   vmcoreinfo data string near the beginning of the dumpfile.
   (anderson at redhat.com)

 - Fix for the initialization-time sorting mechanism required for 
   "flattened format" dumpfiles if the dumpfile is truncated/incomplete.
   Without the patch, the sorting function continues performing invalid
   reads beyond the of the dumpfile, which may lead to an infinite loop
   instead of a session-ending error message.  In addition, since the
   sorting operation may take several minutes, a "please wait" message 
   with an incrementing percentage-complete counter will be displayed.
   (anderson at redhat.com)

 - Several fixes associated with the gathering and display of task 
   state.  Without the patch: 
     (1) The "ps" command's ST column shows "??" for tasks in the 
         TASK_WAKING state.
     (2) The "ps" command's ST column shows "??" for tasks in the
         TASK_PARKED state in Linux 3.14 and later kernels. 
     (3) The STATE field of the initial system banner and the "set" 
         command are incorrect if the task state has the TASK_WAKING, 
         TASK_WAKEKILL modifier, or TASK_PARKED bits set in Linux 3.14
         and later kernels.
     (4) The "foreach DE" task identifier fails if a task with a PID 
         number of 0xDE (222) exists.
     (5) The "foreach" command's "SW", "PA", "TR" and "DE" task
         identifiers inadvertently select all tasks in kernel versions
         that do not have those states.
     (6) The "help -t" output would display incorrect values for the
         TASK_WAKEKILL, TASK_WAKING and TASK_PARKED states in Linux 3.14
         and later kernels.
   Lastly, support for the TASK_NOLOAD modifier introduced in Linux 4.2
   has been added to STATE field of the "set" command and the initial 
   system banner.
   (anderson at redhat.com)
 
 - Fix for the internal memory allocation functionality.  Without the
   patch, in the unlikely event where the GETBUF() facility has to 
   utilize malloc() to allocate a buffer, and CTRL-c is entered while
   that buffer is being zeroed out before being returned to the caller, 
   it may result in a never-ending set of "malloc-free mismatch" error 
   messages. 
   (anderson at redhat.com)
 
 - Fix for the PPC64 "bt" command for active non-panic tasks.  Without
   the patch, the backtrace may fail immediately with the error message
   "bt: invalid kernel virtual address: f  type: Regs NIP value".
   (anderson at redhat.com)

 - Fix for the "bt" command on little-endian PPC64 machines for tasks
   that are blocked in __schedule().  Without the patch, there will be
   two "__switch_to" frames displayed before the normal "__schedule" 
   frame that is used as the starting point for blocked tasks.
   (anderson at redhat.com)

 - Fix for the PPC64 "bt" command to align its exception frame verifier
   function with the most recent version of the kernel's getvecname()
   function, which was updated in Linux 3.12.  Without the patch, the
   "Hypervisor Decrementer", "Emulation Assist", "Hypervisor Doorbell",
   "Altivec Unavailable", "Instruction Breakpoint", "Denormalisation",
   "HMI" and "Altivec Assist" exception types are not recognized and 
   their exception frames not displayed; the  "Doorbell" exception type
   is marked as a "reserved" exception type,
   (anderson at redhat.com)

 - Fix for the "timer" command when run on a kernel with a large number
   of cpus.  Without the patch, the command may fail prematurely with
   a dump of the internal crash utility allocated buffer statistics 
   followed by the message "timer: cannot allocate any more memory!",
   (anderson at redhat.com)

 - Commit f95ecdc330a11d3701de859aab59a5ab5954aae6, which speeds up
   "crash --osrelease" for flattened format dumpfiles, inadvertently 
   broke the option for ELF kdump and compressed kdump dumpfiles. 
   (anderson at redhat.com)
    
 - Implementation of two new "files" command options.  The "files -c"
   option is context-sensitive, similar to the the regular "files"
   command when used without an argument, but replaces the FILE and
   DENTRY columns with I_MAPPING and NRPAGES columns that reflect
   each open file's inode.i_mapping address_space structure address,
   and the address_space.nrpages count within it; this shows how
   many of each open file's pages are currently in the system's
   page cache.  The "files -p <inode>" option takes the address
   of an inode, and dumps all of its pages that are currently in the
   system's page cache, borrowing the "kmem -p" page structure output.
   (yangoliver at gmail.com)

 - Modified the qualification for the execution of the "runq -g" option.  
   Without the patch, if the target kernel was not configured with both
   CONFIG_FAIR_GROUP_SCHED and CONFIG_RT_GROUP_SCHED, the command fails
   with the message "runq: -g option not supported or applicable on this
   architecture or kernel".  With this patch, if the kernel was built 
   with either CONFIG_FAIR_GROUP_SCHED or CONFIG_RT_GROUP_SCHED, the 
   command will execute.
   (rabinv at axis.com)

 - Fix for the error handling of the "foreach task -R struct.member"
   format if an invalid structure and/or member is used as an argument.
   Without the patch, the command will display the expected error
   indicating "task: invalid structure member reference", but then will
   be followed by a stream of "task: recursive temporary file usage" 
   error messages.
   (anderson at redhat.com)

 - Force the 32-bit MIPS extensions/eppic.so to be compiled with -m32.  
   This is required when "make extensions" is executed after the top 
   level crash binary has been built with "make TARGET=MIPS" on an 
   x86_64 host.
   (rabinv at axis.com)

 - If the starting hexadecimal address of a function is passed to the
   "dis" command without a count argument, disassemble the entire 
   function -- similar to when a symbol name of a function is passed 
   without a count argument.  Without the patch, only one instruction
   is displayed.
   (atomlin at redhat.com)

 - Fix compiler warning generated by extensions/trace.c when compiled
   with gcc version 5.  Without the patch, the message "warning: the 
   use of 'mktemp' is dangerous, better use 'mkstemp'" is generated.
   (anderson at redhat.com)

 - Update the extensions/eppic.mk file to clone the eppic source code
   from https://github.com/lucchouina/eppic.git.
   (lucchouina at gmail.com)

 - Export the previously static symbol_name_count() function, which
   returns a count of symbols with the same name.  Export a new 
   is_symbol_text() function, which checks whether specified symbol
   entry is a type 't' or 'T'.
   (atomlin at redhat.com, anderson at redhat.com)

 - If a symbol or symbol+offset argument is passed to the "dis" command,
   and there are multiple text symbols with the same symbol name, then
   display a message indicating that there are "duplicate text symbols
   found", followed by a list of the symbols.  Without the patch, the
   duplicate symbol with the lowest virtual address is used.
   (atomlin at redhat.com, anderson at redhat.com)




More information about the Crash-utility mailing list