~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/process/submit-checklist.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. include:: ../disclaimer-zh_CN.rst
  2 
  3 :Original: Documentation/process/submit-checklist.rst
  4 :Translator:
  5  - Alex Shi <alexs@kernel.org>
  6  - Wu XiangCheng <bobwxc@email.cn>
  7 
  8 .. _cn_submitchecklist:
  9 
 10 Linux内核补丁提交检查单
 11 ~~~~~~~~~~~~~~~~~~~~~~~
 12 
 13 如果开发人员希望看到他们的内核补丁提交更快地被接受,那么他们应该做一些基本
 14 的事情。
 15 
 16 这些都是在 Documentation/translations/zh_CN/process/submitting-patches.rst
 17 和其他有关提交Linux内核补丁的文档中提供的。
 18 
 19 1) 如果使用工具,则包括定义/声明该工具的文件。不要依赖其他头文件来引入您使用
 20    的头文件。
 21 
 22 2) 干净的编译:
 23 
 24    a) 使用合适的 ``CONFIG`` 选项 ``=y``、``=m`` 和 ``=n`` 。没有 ``gcc``
 25       警告/错误,没有链接器警告/错误。
 26 
 27    b) 通过 ``allnoconfig`` 、 ``allmodconfig``
 28 
 29    c) 使用 ``O=builddir`` 时可以成功编译
 30 
 31    d) 任何 Doucmentation/ 下的变更都能成功构建且不引入新警告/错误。
 32       用 ``make htmldocs`` 或 ``make pdfdocs`` 检验构建情况并修复问题。
 33 
 34 3) 通过使用本地交叉编译工具或其他一些构建设施在多个CPU体系结构上构建。
 35 
 36 4) PPC64是一种很好的交叉编译检查体系结构,因为它倾向于对64位的数使用无符号
 37    长整型。
 38 
 39 5) 按 Documentation/translations/zh_CN/process/coding-style.rst 所述检查您的
 40    补丁是否为常规样式。在提交之前使用补丁样式检查器 ``scripts/checkpatch.pl``
 41    检查是否有轻微的冲突。您应该能够处理您的补丁中存在的所有
 42    违规行为。
 43 
 44 6) 任何新的或修改过的 ``CONFIG`` 选项都不应搞乱配置菜单,并默认为关闭,除非
 45    它们符合 ``Documentation/kbuild/kconfig-language.rst`` 菜单属性:默认值中
 46    记录的例外条件。
 47 
 48 7) 所有新的 ``kconfig`` 选项都有帮助文本。
 49 
 50 8) 已仔细审查了相关的 ``Kconfig`` 组合。这很难用测试来纠正——脑力在这里是有
 51    回报的。
 52 
 53 9) 通过 sparse 清查。
 54    (参见 Documentation/translations/zh_CN/dev-tools/sparse.rst )
 55 
 56 10) 使用 ``make checkstack`` 并修复他们发现的任何问题。
 57 
 58     .. note::
 59 
 60         ``checkstack`` 并不会明确指出问题,但是任何一个在堆栈上使用超过512
 61         字节的函数都可以进行更改。
 62 
 63 11) 包括 :ref:`kernel-doc <kernel_doc_zh>` 内核文档以记录全局内核API。(静态
 64     函数不需要,但也可以。)使用 ``make htmldocs`` 或 ``make pdfdocs`` 检查
 65     :ref:`kernel-doc <kernel_doc_zh>` 并修复任何问题。
 66 
 67 12) 通过以下选项同时启用的测试: ``CONFIG_PREEMPT``, ``CONFIG_DEBUG_PREEMPT``,
 68     ``CONFIG_DEBUG_SLAB``, ``CONFIG_DEBUG_PAGEALLOC``, ``CONFIG_DEBUG_MUTEXES``,
 69     ``CONFIG_DEBUG_SPINLOCK``, ``CONFIG_DEBUG_ATOMIC_SLEEP``,
 70     ``CONFIG_PROVE_RCU`` 和 ``CONFIG_DEBUG_OBJECTS_RCU_HEAD`` 。
 71 
 72 13) 在 ``CONFIG_SMP``, ``CONFIG_PREEMPT`` 开启和关闭的情况下都进行构建和运行
 73     时测试。
 74 
 75 14) 所有代码路径都已在启用所有死锁检测(lockdep)功能的情况下运行。
 76 
 77 15) 所有新的 ``/proc`` 条目都记录在 ``Documentation/``
 78 
 79 16) 所有新的内核引导参数都记录在
 80     Documentation/admin-guide/kernel-parameters.rst 中。
 81 
 82 17) 所有新的模块参数都记录在 ``MODULE_PARM_DESC()``
 83 
 84 18) 所有新的用户空间接口都记录在 ``Documentation/ABI/`` 中。有关详细信息,
 85     请参阅 ``Documentation/ABI/README`` 。更改用户空间接口的补丁应该抄送
 86     linux-api@vger.kernel.org。
 87 
 88 19) 已通过至少注入slab和page分配失败进行检查。请参阅 ``Documentation/fault-injection/`` 。
 89     如果新代码是实质性的,那么添加子系统特定的故障注入可能是合适的。
 90 
 91 20) 新添加的代码已经用 ``gcc -W`` 编译(使用 ``make EXTRA-CFLAGS=-W`` )。这
 92     将产生大量噪声,但对于查找诸如“警告:有符号和无符号之间的比较”之类的错误
 93     很有用。
 94 
 95 21) 在它被合并到-mm补丁集中之后进行测试,以确保它仍然与所有其他排队的补丁以
 96     及VM、VFS和其他子系统中的各种更改一起工作。
 97 
 98 22) 所有内存屏障(例如 ``barrier()``, ``rmb()``, ``wmb()`` )都需要源代码注
 99     释来解释它们正在执行的操作及其原因的逻辑。
100 
101 23) 如果补丁添加了任何ioctl,那么也要更新
102     ``Documentation/userspace-api/ioctl/ioctl-number.rst`` 。
103 
104 24) 如果修改后的源代码依赖或使用与以下 ``Kconfig`` 符号相关的任何内核API或
105     功能,则在禁用相关 ``Kconfig`` 符号和/或 ``=m`` (如果该选项可用)的情况
106     下测试以下多个构建[并非所有这些都同时存在,只是它们的各种/随机组合]:
107 
108     ``CONFIG_SMP``, ``CONFIG_SYSFS``, ``CONFIG_PROC_FS``, ``CONFIG_INPUT``,
109     ``CONFIG_PCI``, ``CONFIG_BLOCK``, ``CONFIG_PM``, ``CONFIG_MAGIC_SYSRQ``,
110     ``CONFIG_NET``, ``CONFIG_INET=n`` (但是最后一个需要 ``CONFIG_NET=y`` )。

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php