summaryrefslogtreecommitdiff
path: root/crypto/lzo.c
diff options
context:
space:
mode:
authorOmar Sandoval <osandov@fb.com>2023-06-14 00:14:56 +0300
committerPeter Zijlstra <peterz@infradead.org>2023-06-16 18:17:42 +0300
commitb9f174c811e3ae4ae8959dc57e6adb9990e913f4 (patch)
tree3306ec83cfcfb8a59c8770d04e974469f3a2c6a6 /crypto/lzo.c
parent858fd168a95c5b9669aac8db6c14a9aeab446375 (diff)
downloadlinux-b9f174c811e3ae4ae8959dc57e6adb9990e913f4.tar.xz
x86/unwind/orc: Add ELF section with ORC version identifier
Commits ffb1b4a41016 ("x86/unwind/orc: Add 'signal' field to ORC metadata") and fb799447ae29 ("x86,objtool: Split UNWIND_HINT_EMPTY in two") changed the ORC format. Although ORC is internal to the kernel, it's the only way for external tools to get reliable kernel stack traces on x86-64. In particular, the drgn debugger [1] uses ORC for stack unwinding, and these format changes broke it [2]. As the drgn maintainer, I don't care how often or how much the kernel changes the ORC format as long as I have a way to detect the change. It suffices to store a version identifier in the vmlinux and kernel module ELF files (to use when parsing ORC sections from ELF), and in kernel memory (to use when parsing ORC from a core dump+symbol table). Rather than hard-coding a version number that needs to be manually bumped, Peterz suggested hashing the definitions from orc_types.h. If there is a format change that isn't caught by this, the hashing script can be updated. This patch adds an .orc_header allocated ELF section containing the 20-byte hash to vmlinux and kernel modules, along with the corresponding __start_orc_header and __stop_orc_header symbols in vmlinux. 1: https://github.com/osandov/drgn 2: https://github.com/osandov/drgn/issues/303 Fixes: ffb1b4a41016 ("x86/unwind/orc: Add 'signal' field to ORC metadata") Fixes: fb799447ae29 ("x86,objtool: Split UNWIND_HINT_EMPTY in two") Signed-off-by: Omar Sandoval <osandov@fb.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Josh Poimboeuf <jpoimboe@kernel.org> Link: https://lkml.kernel.org/r/aef9c8dc43915b886a8c48509a12ec1b006ca1ca.1686690801.git.osandov@osandov.com
Diffstat (limited to 'crypto/lzo.c')
0 files changed, 0 insertions, 0 deletions