This is the release of crash gcore command, version 1.2.1.
ChangeLog:
- Fix failure of coredump at accessing memory for VSYSCALL page due
to wrong conversion of uvtop which wrongly treats address
VSYSCALL_START as belongs to kernel direct mapping region. This fix
executes uvtop in verbose mode to make it always paging and
retrieves the correct physical address from its output. Without
this fix, VSYSCALL page fails to be collected and core dump process
is aborted; though VSYSCALL page is done in the last so allmost all
corefile is already generated.
(d.hatayama@jp.fujitsu.com)
- Skip page-faulted pages by lseek() rather than writing zero-filled
pages. By this, generated core file has holes in the corresponding
positions for each page-faulted pages if filesystem supports sparse
files. This is highly useful when the target process has huge
virtual memory space such as qemu process that has huge physical
memory of KVM guest machine.
(d.hatayama@jp.fujitsu.com)
- Fix the bug that filter for hugepage shared/private memory can
depend on flags other than HP or HS flags. This was introduced at
the introduction of VM_DONTDUMP where VM_RESERVED flag was
removed. At the time, there was a check to see if VM_REESRVED flag
was set after a check to see if VM_HUGETLB. But the latter check
was not changed when the former check was removed.
(d.hatayama@jp.fujitsu.com)
This is the release of crash gcore command, version 1.2.0.
ChangeLog:
- Add new dump filter level for memory advised with MADV_DONTDUMP.
By specifying this new dump level, gcore generates core dump
including the ranges with VM_DONTDUMP flag. The new dump level is
not specified at default. See help gcore, in particular, part of -f
option forcusing on DD.
- Deal with anonymous i_nlink member of inode, caused by the kernel's
commit a78ef704a8dd430225955f0709b22d4a6ba21deb. Without this
patch, gcore fails and no core file is generated on the kernels of
the commit or later.
(per.fransson.ml@gmail.com)
- Deal with removal of VM_ALWAYDUMP flag, caused by the kernel's
commit 909af768e88867016f427264ae39d27a57b6a8ed. Without this
change, vdso or vsyscall page is not included in core file on the
kernels of the commit or later.
- Deal with introduction of VM_DONTDUMP flag, on the kernel's commit
a0f5202d695d492221dd946aafbfb3d993f6cbe0. Without this patch,
VM_DONTDUMP flag is wrongly regarded as VM_ALWAYSFLAG flag, and the
corresponding memory is intensinally included in a generated core
dump.
- Deal with removal of VM_RESERVED flag, caused by the kernel's
commit e4bffd16e615edfa42aa4f37224c3a26c6ef2436. Without this
patch, gcore checks VM_RESERVED flag even if it is no longer
present on given kernel.
Supported Kernels:
* Upstream Kernels
version | x86 |x86_64| ARM
-----------+------+------+-----
2.6.35.7 | -- | -- | OK
2.6.36 | OK | OK | --
3.0.8 | -- | -- | OK
3.6.0 | -- | OK | -- (new)
3.7-rc5 | -- | OK | -- (new)
OK : Support
-- : Not support
* RHEL Kernels (#1
| x86 | x86_64
version | | 64 bit ; 32 bit
---------+------+--------+---------
4.8 | OK | OK | --
---------+------+--------+---------
5.5 | OK | OK | OK
5.6 | -- | OK | OK
5.7 | -- | OK | OK
5.8 | -- | OK | OK
---------+------+--------+---------
6.0 | OK | OK | OK
6.1 | -- | OK | OK
6.2 | -- | OK | OK
6.3 | -- | OK | OK (new)
#1) RHEL4 is based on 2.6.9 kernel,
RHEL5 is based on 2.6.18 kernel and
RHEL6 is based on 2.6.32 kernel.
Todo:
- Support for nested NMI handling on X86
Note:
1) The versions signed OK are the ones I did verification. gcore
might work well on kernel versions near the supported ones.
2) The reason why I separate table for RHEL series and table for
upstream series is that RHEL kernels are being made based on upstream
kernels _plus a variety of additional patches_. So, rigorously, they
must be thought of as differnet kernels. However, just as 1), it
would be likely that gcore works well on vmcores for upstream kernels
near the corresponding RHEL versions.
Thanks.
HATAYAMA Daisuke