• Stephen Brennan's avatar
    vmcoreinfo: include kallsyms symbols · 5fd8fea9
    Stephen Brennan authored
    The internal kallsyms tables contain information which could be quite
    useful to a debugging tool in the absence of other debuginfo.  If kallsyms
    is enabled, then a debugging tool could parse it and use it as a fallback
    symbol table.  Combined with BTF data, live & post-mortem debuggers can
    support basic operations without needing a large DWARF debuginfo file
    available.  As many as five symbols are necessary to properly parse
    kallsyms names and addresses.  Add these to the vmcoreinfo note.
    
    CONFIG_KALLSYMS_ABSOLUTE_PERCPU does impact the computation of symbol
    addresses.  However, a debugger can infer this configuration value by
    comparing the address of _stext in the vmcoreinfo with the address
    computed via kallsyms.  So there's no need to include information about
    this config value in the vmcoreinfo note.
    
    To verify that we're still well below the maximum of 4096 bytes, I created
    a script[1] to compute a rough upper bound on the possible size of
    vmcoreinfo.  On v5.18-rc7, the script reports 3106 bytes, and with this
    patch, the maximum become 3370 bytes.
    
    [1]: https://github.com/brenns10/kernel_stuff/blob/master/vmcoreinfosize/
    
    Link: https://lkml.kernel.org/r/20220517000508.777145-3-stephen.s.brennan@oracle.comSigned-off-by: default avatarStephen Brennan <stephen.s.brennan@oracle.com>
    Acked-by: default avatarBaoquan He <bhe@redhat.com>
    Cc: Bixuan Cui <cuibixuan@huawei.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: David Vernet <void@manifault.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Sami Tolvanen <samitolvanen@google.com>
    Cc: Stephen Boyd <swboyd@chromium.org>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    5fd8fea9
crash_core.c 12.3 KB