以下示例在openEuler 23.09 kernel 6.4.0-10.1.0.20,启用CONFIG_LIVEPATCH_WO_FTRACE热补丁机制的x86_64、aarch64、riscv64平台上进行了测试验证。test.sh是自动化测试所有示例的脚本。
原始补丁:netlink: fix potential deadlock in netlink_set_err()
补丁模块插入内核时,报了[T11932] Could not create tracefs 'netlink_extack' directory,似与内核配置有关,无其它异常,未深入追究。
补丁来自KPATCH示例。加载使能补丁模块后,cat /proc/meminfo
可以看到:
原有字符串改为大写:VMALLOCCHUNK
新增的static变量值:kpatch: 5
控制台新增内核日志:hello there!
这个示例在Fedora Linux 39 (Server Edition) x86_64上也测试通过。
补丁来自KPATCH示例。加载使能补丁模块后,uname -a
输出中带上了“.kpatch”字样。
修复加载有jump_table节符号的补丁模块时崩溃问题(aarch64上netlink示例)。
原始补丁:bug fixes for gmem。
以上示例均没有kallsyms中同名符号的情况,以后遇到再补上。