[Crash-utility] [ANNOUNCE] crash gcore command, version 1.5.0 is released

Dave Anderson anderson at redhat.com
Mon Dec 3 16:49:51 UTC 2018



----- Original Message -----
> This is the release of crash gcore command, version 1.5.0.
> 
> The aim of this release is mainly to support v4.18 and newer kernels.
> 
> ChangeLog:
> 
>   - Fix the issue that special vmas such as vdso and vsyscall are not
>     saved in a produced core file due to the commit
>     78d683e838a60ec4ba4591cca4364cba84a9e626 titled "mm, fs: Add
>     vm_ops->name as an alternative to arch_vma_name" and merged at
>     v3.15-rc5, which replaced the way of naming special vma such as
>     vdso and vsyscall.
> 
>   - Fix the issue that no NT_PRFPREG is collected due to repeated
>     changes on the x86 FPU code in the upstream kernel. Note that
>     although the issue that no NT_PRFPREG is collected is (probably
>     temporarily) fixed, its content would be useless in most cases
>     since the FPU registers to be saved in NT_PRFPREG are now read
>     dynamically when a core file is created.
> 
>   - Change the logic of restoring general-purpose registers at
>     interrupt contexts according to the commit
>     ff467594f2a4be01a0fa5e9ffc223fa930d232dd titled "x86/asm/entry/64:
>     Save all regs on interrupt entry" and merged at v4.2-rc2 where all
>     the registers including callee-saved registers are saved on
>     interrupt entry. Thus, we don't have to try to restore
>     callee-saved registers in the function frames. I'm very happy.
> 
>   - Address the change of vsyscall logic that vsyscall page is not
>     mapped in user-space if vsyscall=none is configured in the kernel
>     command-line parameters by the commit
>     87983c66bc02c9cd8e4a42e7924435145d52bb13 titled "x86_64, vsyscall:
>     Turn vsyscalls all the way off when vsyscall==none" and merged at
>     v3.18-rc3.
> 
>   - Fix NULL pointer dereference caused by the removal of old_rsp
>     symbol by the commit 9854dd74c3f6af8d9d527de86c6074b7ed0495f1
>     titled "x86: fix NULL pointer dereference caused by the removal of
>     old_rsp" and merged at v4.0-rc3. But the commit simplifies how to
>     save old_rsp and now it is saved in the bottom of kernel stack as
>     part of a pt_regs structure object. Hence this also simplifies
>     gcore's register restoration logic.
> 
> MD5 CheckSum:
> 
>   # md5sum ./crash-gcore-command-1.5.0.tar.gz
>   b420bb5be8013c8482861171ff78fbaf  ./crash-gcore-command-1.5.0.tar.gz
> 
> --
> Thanks.
> HATAYAMA, Daisuke

Hello Daisuke,

Thanks for the update.  Note that the arm64 bug that we discussed a while
back was not addressed in your update.  With the suggested patch, it does
work OK:  

--- a/gcore.c.orig
+++ b/gcore.c
@@ -490,6 +490,10 @@ static void gcore_offset_table_init(void
        GCORE_MEMBER_OFFSET_INIT(vfp_hard_struct_fpscr, "vfp_hard_struct", "fpscr");
        GCORE_MEMBER_OFFSET_INIT(thread_struct_fpsimd_state, "thread_struct", "fpsimd_state");
        GCORE_MEMBER_OFFSET_INIT(thread_struct_tp_value, "thread_struct", "tp_value");
+       if (GCORE_INVALID_MEMBER(thread_struct_fpsimd_state)) {
+               GCORE_ANON_MEMBER_OFFSET_INIT(thread_struct_fpsimd_state, "thread_struct", "uw.fpsimd_state");
+               GCORE_ANON_MEMBER_OFFSET_INIT(thread_struct_tp_value, "thread_struct", "uw.tp_value");
+       }
 }

 static void gcore_size_table_init(void)


Do you want to update the release, or leave it as-is and allow distros
to add the patch above?

Thanks,
  Dave






More information about the Crash-utility mailing list