Skip to content

BOLT #35

@lfeng14

Description

@lfeng14
  • BOLT only changes branches and the location of the basic blocks in the binary to achieve its improvements.
  • Then BOLT disassembles the functions vs objdump
  • 整数 vs 地址 如何区分 ?
  • BOLT需要基本块执行频率 与 控制流边上的转移概率;跟PGO有什么差别
  • 但如果不知道这些执行是如何流入每个块的,我们就无法确定哪个前驱到该块的路径更热。而代码布局的核心目标之一,是将高频执行的边(branch)安排成 fall-through(即不产生跳转指令),从而减少指令缓存缺失和分支预测失败
  • 函数重排 vs 基本块重排 哪个更值得做
  • The kernel provides other challenges, because its code is modified at boot time and also while it is running.
  • BOLT 在重新排列内核二进制代码的同时,会同步更新所有相关的元数据?dwarf orc unwind
  • 什么影响性能 ? The timing and duration of the profiling may have a significant effect on the performance of the BOLTed kernel
  • 如何反汇编:llvm-bolt vmlinux -o /dev/null --print-cfg
  • 需要处理哪些特殊符号,比如static key

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions