v5
2026-11-05
MAP 分配标签选择性追踪 · v5
v5为alloc_tag增加分配跟踪tracepoint与IOCTL开关,并扩展allocinfo_filter过滤查询。
原始补丁链接
子 Patch(5)
1/5
alloc_tag: Add trace events for tracing allocations
新增 alloc_tag_hit、alloc_tag_mem_alloced、alloc_tag_mem_freed 三个 tracepoint,在 alloc_tag_add/sub 记录 tag、大小和 ptr,供用户态拼接分配生命周期。
2/5
alloc_tag: Introduce IOCTLs to toggle allocation tracepoints
新增 IOCTL 按过滤条件切换 call site 的 CODETAG_FLAG_TRACE_ON,并用 alloc_tag_trace_key 静态键包住 alloc_tag_add/sub 的 trace 分支,未追踪时快路径仅 NOP。
3/5
alloc_tag: Add a flags field to allocinfo_filter
allocinfo_filter 以匿名 union 让 flags 与 inaccurate 共享存储,bit0 定义 inaccurate,避免新增过滤位改变 ioctl 号;旧字段兼容,但仅 bit0 生效。
4/5
alloc_tag: Extend allocinfo_filter to support tracing queries
扩展 allocinfo_filter 与 mm/alloc_tag.c,使用户可通过过滤掩码按 tag 的 trace_on 状态筛选查询结果,配合 ALLOCINFO_IOC_GET_AT 查看追踪状态。
5/5
alloc_tag: Add a test for trace state toggle and filtering
kselftest 新增 test_tracing_toggle_and_filter,以 dup_mm 的 tag 翻转 trace 状态、查询验证 trace_on 后恢复原状态;找不到 tag 则跳过,覆盖 IOCTL 与过滤行为。