v6
2026-09-11
支持64字节长任务名 · v6
扩展任务名至 TASK_COMM_EXT_LEN,新增 copy_task_comm,并用 prctl 支持长线程名及自测。
原始补丁链接
子 Patch(6)
1/6
treewide: Get rid of get_task_comm()
全树把 get_task_comm() 替换为 strscpy_pad(),去掉冗余包装,利用 strscpy_pad 在目标缓冲过大时零填充、过小时截断。
2/6
treewide: Replace memcpy(..., current->comm) with copy_task_comm()
新增 copy_task_comm() 并替换对 current->comm 的 memcpy,保证目标 NUL 终止并处理缓冲区大小不匹配,为后续扩展任务名长度做准备。
3/6
lib/string_kunit: Add test for copy_task_comm()
在 string_kunit 中新增 copy_task_comm() 测试,覆盖正常任务名复制以及源目标长度不一致时的截断与 NUL 保证。
4/6
sched: Extend task command name with TASK_COMM_EXT_LEN
引入 TASK_COMM_EXT_LEN 扩展任务名,现有 /proc 等 API 仍截断到 TASK_COMM_LEN,长名留给新接口,并修正 i915/blktrace 缓冲。
5/6
prctl: Add support for long user thread names
新增 PR_SET_EXT_NAME/PR_GET_EXT_NAME prctl,允许用户线程读写超过 TASK_COMM_LEN 的扩展任务名,配合之前引入的 TASK_COMM_EXT_LEN 字段。
6/6
selftests: prctl: Add test for long thread names
新增长线程名与 /proc/comm 一致性测试;把 check_is_name_correct() 改为返回 strcmp 结果,避免错误码被 EXPECT_TRUE 误判成功。