linux/Documentation/zh_CN/SubmitChecklist

110 lines
4.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Chinese translated version of Documentation/SubmitChecklist
If you have any comment or update to the content, please contact the
original document maintainer directly. However, if you have a problem
communicating in English you can also ask the Chinese maintainer for
help. Contact the Chinese maintainer if this translation is outdated
or if there is a problem with the translation.
Chinese maintainer: Harry Wei <harryxiyou@gmail.com>
---------------------------------------------------------------------
Documentation/SubmitChecklist 的中文翻译
如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
译存在问题,请联系中文版维护者。
中文版维护者: 贾威威 Harry Wei <harryxiyou@gmail.com>
中文版翻译者: 贾威威 Harry Wei <harryxiyou@gmail.com>
中文版校译者: 贾威威 Harry Wei <harryxiyou@gmail.com>
以下为正文
---------------------------------------------------------------------
Linux内核提交清单
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这里有一些内核开发者应该做的基本事情,如果他们想看到自己的内核补丁提交
被接受的更快。
这些都是超出Documentation/SubmittingPatches文档里所提供的以及其他
关于提交Linux内核补丁的说明。
1如果你使用了一个功能那么就#include定义/声明那个功能的那个文件。
不要依靠其他间接引入定义/声明那个功能的头文件。
2构建简洁适用或者更改CONFIG选项 =y=m或者=n。
不要有编译警告/错误, 不要有链接警告/错误。
2b通过 allnoconfig, allmodconfig
2c当使用 0=builddir 成功地构建
3通过使用本地交叉编译工具或者其他一些构建产所在多CPU框架上构建。
4ppc64 是一个很好的检查交叉编译的框架因为它往往把unsigned long
当64位值来使用。
5按照Documentation/CodingStyle文件里的详细描述检查你补丁的整体风格。
使用补丁风格检查琐碎的违规(scripts/checkpatch.pl),审核员优先提交。
你应该调整遗留在你补丁中的所有违规。
6任何更新或者改动CONFIG选项都不能打乱配置菜单。
7所有的Kconfig选项更新都要有说明文字。
8已经认真地总结了相关的Kconfig组合。这是很难通过测试做好的--脑力在这里下降。
9检查具有简洁性。
10使用'make checkstack'和'make namespacecheck'检查,然后修改所找到的问题。
注意堆栈检查不会明确地出现问题但是任何的一个函数在堆栈上使用多于512字节
都要准备修改。
11包含kernel-doc到全局内核APIs文件。不要求静态的函数但是包含也无所谓。
使用'make htmldocs'或者'make mandocs'来检查kernel-doc然后修改任何
发现的问题。
12已经通过CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT,
CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES,
CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_SPINLOCK_SLEEP测试并且同时都
使能。
13已经都构建并且使用或者不使用 CONFIG_SMP 和 CONFIG_PREEMPT测试执行时间。
14如果补丁影响IO/Disk等等已经通过使用或者不使用 CONFIG_LBDAF 测试。
15所有的codepaths已经行使所有lockdep启用功能。
16所有的/proc记录更新都要作成文件放在Documentation/目录下。
17所有的内核启动参数更新都被记录到Documentation/kernel-parameters.txt文件中。
18所有的模块参数更新都用MODULE_PARM_DESC()记录。
19所有的用户空间接口更新都被记录到Documentation/ABI/。查看Documentation/ABI/README
可以获得更多的信息。改变用户空间接口的补丁应该被邮件抄送给linux-api@vger.kernel.org。
20检查它是不是都通过`make headers_check'。
21已经通过至少引入slab和page-allocation失败检查。查看Documentation/fault-injection/。
22新加入的源码已经通过`gcc -W'(使用"make EXTRA_CFLAGS=-W")编译。这样将产生很多烦恼,
但是对于寻找漏洞很有益处,例如:"warning: comparison between signed and unsigned"。
23当它被合并到-mm补丁集后再测试用来确定它是否还和补丁队列中的其他补丁一起工作以及在VMVFS
和其他子系统中各个变化。
24所有的内存屏障{e.g., barrier(), rmb(), wmb()}需要在源代码中的一个注释来解释他们都是干什么的
以及原因。
25如果有任何输入输出控制的补丁被添加也要更新Documentation/ioctl/ioctl-number.txt。
26如果你的更改代码依靠或者使用任何的内核APIs或者与下面的kconfig符号有关系的功能你就要
使用相关的kconfig符号关闭 and/or =m如果选项提供[在同一时间不是所用的都启用,仅仅各个或者自由
组合他们]
CONFIG_SMP, CONFIG_SYSFS, CONFIG_PROC_FS, CONFIG_INPUT, CONFIG_PCI,
CONFIG_BLOCK, CONFIG_PM, CONFIG_HOTPLUG, CONFIG_MAGIC_SYSRQ,
CONFIG_NET, CONFIG_INET=n (后一个使用 CONFIG_NET=y)