Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
educg-net-12098-788067
project788067-860
Commits
28c9d473
Commit
28c9d473
authored
2 years ago
by
广告位招租
Browse files
Options
Download
Patches
Plain Diff
change readme
parent
7235a585
master
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
README.md
+0
-10
README.md
技术方案(初).md
+14
-0
技术方案(初).md
with
14 additions
and
10 deletions
+14
-10
README.md
+
0
−
10
View file @
28c9d473
...
...
@@ -22,16 +22,6 @@ kpatch版本:0.96
缓存文件包含完整的首次编译信息打包文件以及校验文件,这个文件中同时还包含了原始的vmlinux,可以最大程度避免kpatch-build首次编译用时。由于缓存文件包包含了配置信息,可以编译与主机配置无关的目标机patch。
## 冲突检测增强
### 加载顺序一致性
多个补丁使用不同顺序加载,最后生效的补丁函数可能不同,造成多个机器间的不一致行为。但是,由于patch加载使用了insmod,最后加载完成后才会退出syscall,所以只要syscall调用者保证加载一致性即可,即kpatch load时顺序加载即可,无需作额外的保护。
## 冲突增强检测
# 快速开始
1.
构建安装
...
...
This diff is collapsed.
Click to expand it.
技术方案(初).md
+
14
−
0
View file @
28c9d473
# 首次编译缓存
-
缓存首次编译文件并且打包
-
使用md5校验
# 冲突检测
-
无需检测补丁加载顺序
-
已加载补丁信息需要ko代码使用sysfs/kobject读取,单独标记已生效函数。
-
修改的补丁函数按照补丁划分,同一个补丁的修改函数为一组。
-
**检测算法:**
-
生效的补丁的函数不允许有交级,如patch A的函数为a1 b1 c1,patch B为d1 e1,那么patch A和B可以同时生效
-
如果新添加的补丁与已生效补丁有交集,除非新补丁完全包含已生效补丁才可替换原有补丁,否则报错。如patch A包含a1 b1 c1,新的patch B包含a2 b2 c2 d1 e1,那么patch B可以完全替换patch A。
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets