summaryrefslogtreecommitdiff
path: root/scripts/Makefile.thinlto
diff options
context:
space:
mode:
authorTengda Wu <wutengda@huaweicloud.com>2026-10-20 13:45:09 +0000
committerArnaldo Carvalho de Melo <acme@redhat.com>2026-10-22 17:17:01 -0300
commit76a411f90bd7bf8b109216fd0b72249b10f76a0c (patch)
tree2c5b29b6193a4a9cb49d6f692a93a96bede3632f /scripts/Makefile.thinlto
parent143ad11b37630c89b5fe19f521cc7ebeda0479ee (diff)
downloadlinux-76a411f90bd7bf8b109216fd0b72249b10f76a0c.tar.gz
linux-76a411f90bd7bf8b109216fd0b72249b10f76a0c.zip
perf annotate-arm64: Support 'adrp' instruction to track global variables
Extend update_insn_state_arm64() to track global variable types calculated via page-relative addressing. On arm64, global variables are typically accessed by first calculating the page address using 'adrp', followed by an 'add' or 'ldr' to get the specific symbol address. Without tracking 'adrp', the instruction tracker loses the base address, making it impossible to resolve global symbols and their associated DWARF types. Introduce TSR_KIND_GLOBAL_ADDR to represent a partial global address state. When encountering 'adrp', store the page-aligned target address in the register's type state. Upon a subsequent 'add' or 'ldr' instruction that references a TSR_KIND_GLOBAL_ADDR register, combine the page address with the immediate offset. A real-world example is shown below: ffff80008032e008 <folios_put_refs>: ffff80008032e048: adrp x24, ffff80008202f000 <nr_cpu_ids> ffff80008032e050: add x24, x24, #0xd40 * ffff80008032e078: ldr x0, [x24] Before this commit, x24 was unknown, leading to no type information: chk [70] reg24 offset=0 ok=0 kind=0 cfa : no type information final result: no type information After this commit, the tracker correctly follows the adrp/add flow: adrp [40] global addr=0xffff80008202f000 -> reg24 add [48] global 0xd40(reg24) -> reg24 chk [70] reg24 offset=0 ok=1 kind=7 global addr : Good! final result: type='struct folio*' Reviewed-by: Ian Rogers <irogers@google.com> Reviewed-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Li Huafei <lihuafei1@huawei.com> Signed-off-by: Tengda Wu <wutengda@huaweicloud.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions