[Crash-utility] 答复: 答复: failed to do crash analysis after insert custom module in the first kernel.
Dave Anderson
anderson at redhat.com
Fri Jan 15 16:32:34 UTC 2016
----- Original Message -----
> Hi Dave:
>
> >From the kernel codes, I found the member in my kernel was changed to
> >module_core_rx in CGL kernel, in crash's codes(6.1.4): kernel.c, there have
> >the following content:
> /******************************************************/
> case KMOD_V2:
> MEMBER_OFFSET_INIT(module_num_syms, "module", "num_syms");
> MEMBER_OFFSET_INIT(module_list, "module", "list");
> MEMBER_OFFSET_INIT(module_gpl_syms, "module", "gpl_syms");
> MEMBER_OFFSET_INIT(module_num_gpl_syms, "module",
> "num_gpl_syms");
> MEMBER_OFFSET_INIT(module_module_core, "module",
> "module_core");
> MEMBER_OFFSET_INIT(module_core_size, "module",
> "core_size");
>
> .........
>
> if (PAX()) {
> /*
> * PaX shall populate RX offsets into original ones.
> * This decision can work out PaX with less impact
> for
> * existing routines.
> *
> * Since PaX module dose not own text size,
> * these values should be sharpen by section
> attributes
> * while loading them from object file.
> */
> MEMBER_OFFSET_INIT(module_module_core, "module",
> "module_core_rx");
> MEMBER_OFFSET_INIT(module_core_size, "module", //
> looks this version crash have codes to deal with
> this member,
> "core_size_rx");
> MEMBER_OFFSET_INIT(module_core_text_size, "module",
> "core_size_rx");
> MEMBER_OFFSET_INIT(module_module_init, "module",
> "module_init_rx");
> MEMBER_OFFSET_INIT(module_init_size, "module",
> "init_size_rx");
> MEMBER_OFFSET_INIT(module_init_text_size, "module",
> "init_size_rx");
> }
>
> /******************************************************/
>
> Looks this version crash have codes to deal with this member, but on my side,
> it did not get into branch, still try to get code_size as module_core_size.
>
> If I change codes:
> /******************************************************/
> case KMOD_V2:
> MEMBER_OFFSET_INIT(module_num_syms, "module", "num_syms");
> MEMBER_OFFSET_INIT(module_list, "module", "list");
> MEMBER_OFFSET_INIT(module_gpl_syms, "module", "gpl_syms");
> MEMBER_OFFSET_INIT(module_num_gpl_syms, "module",
> "num_gpl_syms");
> MEMBER_OFFSET_INIT(module_module_core, "module",
> "module_core_rx");
> MEMBER_OFFSET_INIT(module_core_size, "module",
> "core_size");
> /******************************************************/
>
> The vmcore can be analysed well.
>
> If I miss some configuration in cgl kernel to coordinate with crash tool?
>
> /****************************************************/
> #define PAX() ((THIS_KERNEL_VERSION >= LINUX(2,6,27)) && \
> VALID_MEMBER(module_module_core_rx))
> /****************************************************/
Hello James,
If you would like to do so, you can post a PaX patch against the current
crash-7.1.4 source tree, and it would be included in crash-7.1.5.
Thanks,
Dave
More information about the Crash-utility
mailing list