402 Star 1.4K Fork 1.3K

GVPopenEuler / kernel

 / 详情

[OLK-5.10] 热补丁补充维测日志

已完成
需求
创建于  
2022-04-21 16:49

热补丁注册及使能的失败路径补充维测日志,便于问题定位

评论 (3)

Zhengyejian 创建了需求

Hi zhengyejian, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Kernel, and any of the maintainers: @YangYingliang , @pi3orama , @成坚 (CHENG Jian) , @jiaoff , @Qiuuuuu , @zhengzengkai , @刘勇强 , @Xie XiuQi

openeuler-ci-bot 添加了
 
sig/Kernel
标签
Zhengyejian 修改了描述
Zhengyejian 修改了标题

针对以下场景增加了日志:

  1. 热补丁注册流程:
    1. patch或其mod、objs传NULL时,打印“livepatch: patch invalid”或“livepatch: patch->mod invalid”或“livepatch: patch->objs invalid”;
    2. 目标函数位于某个内核模块时,该内核模块名字大于等于特定长度(32位限长60字节,64位限长56字节)时,打印“livepatch: obj name is too long”;
    3. 目标函数数组(klp_object.funcs)传NULL时,打印“livepatch: obj->funcs invalid”;
    4. 内核热补丁功能未初始化完成,则打印“livepatch: kernel live patch is not available”;
    5. 目标函数名传NULL时,打印“livepatch: old name is invalid”;
    6. 目标函数名大于等于特定长度(128字节)时,打印“livepatch: function old name is too long”;
    7. 新函数地址传NULL时,打印“livepatch: new_func is invalid”;
    8. 重定向热补丁ko专有的段(“.klp.rela.xxx”)失败时,打印“" livepatch: apply object relocations failed, ret=<RETURN_VALUE>”;
    9. 热补丁ko的jump label注册失败时,打印“livepatch: register jump label failed, ret=<RETURN_VALUE>”;
    10. ppc64大端架构,如果目标函数名未加前缀“.”,打印“livepatch: old_name 'target_func1' may miss the prefix '.', old_size=<OLD_FUNCTION_SIZE>”;
  2. 热补丁enable/disable流程:
    1. 栈检查过程中,汇总待检查的目标函数失败时,打印“livepatch: collect active functions failed, ret=<RETURN_VALUE>”;
    2. x86推任务调用栈失败时,打印“livepatch: : has an unreliable stack, ret=<RETURN_VALUE>”;
    3. enable热补丁时,当新函数与旧函数的相对偏移超出一定范围(arm32为32M,arm64为128M,ppc32为32M,其他架构不涉及)时,如果某条指令修改失败,则打印“livepatch: patch instruction(<INSTRUCTION_NUMBER>) large range failed, ret=<RETURN_VALUE>”;当新旧函数相对偏移不超出范围,如果修改指令失败,则打印“livepatch: patch instruction small range failed, ret=<RETURN_VALUE>”;
    4. disable热补丁时,由于arm64、ppc32、ppc64涉及多条指令的修改,如果某条指令还原失败,则打印“livepatch: restore instruction(<INSTRUCTION_NUMBER>) failed, ret=<RETURN_VALUE>”。

该补丁集已在x86_64/arm32/arm64/ppc32/ppc64的qemu环境上验证了基本功能:
输入图片说明
输入图片说明

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
5329419 openeuler ci bot 1632792936
C
1
https://gitee.com/openeuler/kernel.git
git@gitee.com:openeuler/kernel.git
openeuler
kernel
kernel

搜索帮助