Download from:
http://people.redhat.com/anderson
Changelog:
- Fix for the ARM architecture if the backtrace unwind information
cannot be gathered during session initialization. Without the patch,
the two unwind-related warning messages indicating "WARNING: UNWIND:
failed to gather unwind_table list" and "WARNING: UNWIND: failed to
initialize module unwind tables" are followed by the fatal error
message "crash: cannot hash task_struct entries".
(anderson(a)redhat.com)
- Fix for the "help -[Dn]" dumpfile information display of the GUID EFI
table in the header of SADUMP dumpfiles. Without the patch, only 33
of the 36 bytes in the table are translated.
(d.hatayama(a)jp.fujitsu.com)
- Fix for the determination of the kernel NR_CPUS configurable for
Linux 3.8 and later kernels that are configured with CONFIG_SLAB.
Without the patch, the kernel's compiled-in NR_CPUS value was
incorrectly calculated to be the sum of the kernel's NR_CPUS and
MAX_NUMNODES configurables.
(anderson(a)redhat.com)
- In the next release of makedumpfile, the status field of the
dumpfile header of compressed kdumps will show the compression
type that was utilized. The "help -[Dn]" output has been updated
to display that information.
(anderson(a)redhat.com)
- For kernels configured with CONFIG_SLAB in which an array_cache
pointer referenced by a kmem_cache structure is invalid, the
individual cache(s) will be marked as invalid. During session
initialization, the message "crash: kmem_cache: <cache-address>:
invalid array_cache pointer" will be displayed, and during runtime,
attempts to access the cache(s) will result in a message indicating
that the cache is "[INVALID/CORRPUTED]". Without the patch, the
message "crash: unable to initialize kmem slab cache subsystem" is
displayed during session initialization, and run-time commands that
attempt to access the kmem slab cache subsystem fail with the error
message "kmem cache slab subsystem not available".
(anderson(a)redhat.com)
- Fix for the "kmem -[sS] <slab-object-address>" option in Linux 3.6
and later kernels configured with CONFIG_SLAB. Without the patch,
the command fails with the message "kmem: address is not allocated in
slab subsystem: <slab-object-address>. This also causes the
"kmem <slab-object-address>" command to (quietly) fail to determine
that the address is a slab object.
(anderson(a)redhat.com)
- Fix for the "bt" command if a kernel __init text address is
encountered. Without the patch, and depending upon the reallocation
of the __init text memory, a bogus framesize may be calculated, or
more likely, in a compressed kdump, a warning message indicating
"bt: page excluded: kernel virtual address: <address> type:
gdb_readmem_callback" will be displayed following the frame data.
(anderson(a)redhat.com)
- Update for determining whether an S390X PTE contains a swap entry
in Linux 3.12 and later kernels.
(holzheu(a)linux.vnet.ibm.com)
- Resurrected the translation and display of the page.flags bits by the
"kmem -p" command on Linux 2.6.26 and later kernels whose vmlinux
debuginfo data contains either the "pageflags" enumerator or the
"pageflag_names" array of trace_print_flags structures. If they are
not available, just the page.flags value is printed in hexadecimal,
as has been done since Linux 2.4.9.
(anderson(a)redhat.com)
- Fix for the "bt" command when used with vmcore files that were
created with the recently-introduced "virsh dump --memory-only",
which dumps KVM guests into an ELF vmcore similar to those created
by the kdump facility. Without the patch, a faulty backtrace for the
panic task may be generated due to the use of incorrect starting
RSP/RIP registers; this happens because (unlike kdump) the
non-panicking cpus are offlined prior to the dumpfile being created,
which in turn leads to the use of the wrong NT_PRSTATUS note.
(anderson(a)redhat.com)
- Fix for the CPU number display on systems with 255 or more cpus
during the initial banner, by the "set" command, the "ps" command,
and by all commands that display the per-task header consisting of
the task address, pid, cpu and command name. Without the patch, for
cpu 255, the "sys" command displays "NO_PROC_ID", and the other
commands would show a "-" for the cpu number; for cpu numbers greater
than 255, garbage values would be displayed in the cpu number field.
(anderson(a)redhat.com)
- Implemented support for compressed kdump header version 6, in which
makedumpfile(8) adds new fields in the kdump_sub_header to support
large memory systems with pfn values that are larger than 32-bits.
Without the patch, if the system contains physical memory located
in high memory such that its maximum pfn value is overflows the
32-bit "max_mapnr" field in the header, the crash session will fail
with the error message "crash: vmlinux and vmcore do not match!".
(jingbai.ma(a)hp.com)
- Fix for the "net -s" command on Linux 3.8 and later kernels. Without
the patch, the command fails with the message "net: invalid structure
member offset: inet_opt_daddr".
(anderson(a)redhat.com)
- Fix a build failure in a native ARM64 environment due to obsolete
LKCD dumpfile headers.
(anderson(a)redhat.com)
- Implementation of a new "per-cpu object" as an argument format that
can be passed to the "p", "struct", "union" or
"*" commands. The
format is expressed as either <per-cpu symbol>:<cpu-specifier> or
as <per-cpu offset>:<cpu-specifier>, where the per-cpu symbol or
per-cpu offset must precede a colon, and where the <cpu-identifier>
follows the colon. The cpu-identifier may be expressed in any of
the following manners:
: CPU of the currently selected task.
:a[ll] all CPUs.
:#[-#][,...] CPU list(s), e.g. "1,3,5", "1-3",
or "1,3,5-7,10".
Without the patch, per-cpu symbols are only accepted by the "p"
command, and the data type and the resolved kernel virtual address
for each per-cpu instance are displayed shown. With this patch, a
colon and a cpu-specifier may be appended to the symbol name, and the
the contents of the symbol on each cpu that is specified will be
displayed by the "p" command. For the "struct/union/*" commands,
an
argument may be specified using either a per-cpu offset value or
per-cpu symbol name followed by a colon and cpu-specifier, and the
contents of each structure/union on each specified cpu will be
displayed.
(ptesarik(a)suse.cz)
Fixed several minor flaws that were detected by a Coverity Scan:
tools.c:
992:warning[invalidScanfArgType_int] – %d in format string
(no. 1) requires 'int *' but the argument type is 'unsigned
int *'.
memory.c:
7461:error[uninitvar] – Uninitialized variable: page_cache_size
filesys.c:
731:error[resourceLeak] – Resource leak: version
kernel.c:
5675:error[uninitvar] – Uninitialized variable: action
7799:error[memleakOnRealloc] – Common realloc mistake:
'ikconfig_all' nulled but not freed upon failure
configure.c:
793:error[mismatchAllocDealloc] – Mismatching allocation and
deallocation: fp
remote.c:
1120:error[resourceLeak] – Resource leak: pipe
va_server.c:
316:error[memleak] – Memory leak: disk_hdr
va_server_v1.c:
311:error[memleak] – Memory leak: disk_hdr
makedumpfile.c:
80:error[memleakOnRealloc] – Common realloc mistake: 'ptr' nulled
but not freed upon failure
sadump.c:
231:error[memleakOnRealloc] – Common realloc mistake: 'sdh'
nulled but not freed upon failure
extensions/snap.c:
550:error[uninitvar] – Uninitialized variable: prstatus_len
541:error[uninitvar] – Uninitialized variable: l_offset
extensions/trace.c:
1477:error[resourceLeak] – Resource leak: file
(anderson(a)redhat.com)