summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/task-analyzer.py
diff options
context:
space:
mode:
authorBrian Gerst <brgerst@gmail.com>2025-01-23 22:07:39 +0300
committerIngo Molnar <mingo@kernel.org>2025-02-18 12:15:09 +0300
commit80d47defddc000271502057ebd7efa4fd6481542 (patch)
tree8b352a713b9f87567eb3d3a4ac1bcc55bc9311ed /tools/perf/scripts/python/task-analyzer.py
parent78c4374ef8b842c6abf195d6f963853c7ec464d2 (diff)
downloadlinux-80d47defddc000271502057ebd7efa4fd6481542.tar.xz
x86/stackprotector/64: Convert to normal per-CPU variable
Older versions of GCC fixed the location of the stack protector canary at %gs:40. This constraint forced the percpu section to be linked at absolute address 0 so that the canary could be the first data object in the percpu section. Supporting the zero-based percpu section requires additional code to handle relocations for RIP-relative references to percpu data, extra complexity to kallsyms, and workarounds for linker bugs due to the use of absolute symbols. GCC 8.1 supports redefining where the canary is located, allowing it to become a normal percpu variable instead of at a fixed location. This removes the constraint that the percpu section must be zero-based. Signed-off-by: Brian Gerst <brgerst@gmail.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Uros Bizjak <ubizjak@gmail.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/20250123190747.745588-8-brgerst@gmail.com
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions