About Me

Since 2024 · Tencent

Senior Engineer

2019–2023 · Huawei / openEuler

Recent Work

Livepatching with LTO

Kernel objtool/klp — Missed changes to same-named call and data references in klp-build.

GCC PR126841 — Defer GIMPLE wrapper section naming until final assembler names are available. (Commit)

GCC PR126355 — Emit address-bearing DWARF entries for IPA ICF wrappers. (Commit)

LLVM/LLD #211062 — Save ThinLTO objects on cache hits with --lto-obj-path.

AutoFDO Optimization Potential

AutoFDO #269 — Fix DWARF 5 string-section handling and line-table metadata.

AutoFDO #268 — Read inline call-site discriminators encoded as DW_FORM_implicit_const.

AutoFDO #267 — Avoid adding the base address to absolute DWARF 5 ranges.

GCC PR127125 — Distorted entry-flow inference when the function-head sample count is zero.

AutoFDO #266 — Fix indexed-address decoding and operand-width handling.

DWARF Correctness and Validation

GDB PR34741 — Expression lookup can call overridden weak functions. (RFC)

GDB patch — Filter relocated zero-address markers for discarded variables.

LLVM #230469 — Filter discarded low-address ranges during compilation-unit lookup.

LLVM #225358 — Avoid attributing merged memory accesses to a partial inline frame.

DWARF proposal — Separate definition-instance addresses from statically selected addresses.

GCC PR126348 — Preserve input-TU DIE references for consistent LTO abstract origins. (Report)

Earlier Contributions

kpatch

#1303 — Detect relocation changes even when section contents match.

#1301 — Handle relocation sections that disappear after patching.

openEuler support — Add openEuler support to kpatch-build.

CRIU

x86 assembly — Fix a register-width mismatch in bit operations.

AArch64 vDSO — Fix a crash during process restoration.

proc_smaps — Remove an obsolete nonlinear-mapping check.

Kernel

Uprobe handlers — Skip single-stepping when a handler changes the program counter.

Uprobe inspection — List active uprobes in the system.

x86 kexec — Co-develop a CPU-parking path for kexec boot.

File locking — Print complete lock information.

Toolchains

GCC libcpp — Allow suppression of __LINE__ redefinition warnings.

Binutils/readelf — Print section names for section symbols.

Other System Software

NuttX tmpfs — Remove duplicated filesystem code.

Toybox ping — Include packet TTL in ping output.

OpenSSH — Remove a duplicate declaration in fatal.c.

Elixir — Document SELinux and systemd setup.