Linux 内核补丁提交的清单 【ChatGPT】

简介: Linux 内核补丁提交的清单 【ChatGPT】

这是一个关于 Linux 内核补丁提交的清单,开发者如果想要更快地看到他们的内核补丁被接受,应该做一些基本的事情。

这些事情都超出了《Documentation/process/submitting-patches.rst》和其他关于提交 Linux 内核补丁的文档提供的内容。

  • 如果你使用了某个设施,那么请 #include 定义/声明该设施的文件。不要依赖其他头文件来引入你所使用的头文件。
  • 清晰地构建:
  • 使用适用或修改后的 CONFIG 选项 =y, =m, 和 =n。没有 gcc 警告/错误,没有链接器警告/错误。
  • 通过 allnoconfig, allmodconfig
  • 使用 O=builddir 成功构建
  • 任何 Documentation/ 的更改都能成功构建,没有新的警告/错误。使用 make htmldocs 或 make pdfdocs 来检查构建并修复任何问题。
  • 在多个 CPU 架构上构建,使用本地交叉编译工具或其他构建工具。
  • ppc64 是一个用于交叉编译检查的良好架构,因为它倾向于使用无符号长整型来表示 64 位数量。
  • 检查你的补丁是否符合《Documentation/process/coding-style.rst》中详细描述的一般风格。在提交之前使用 patch 风格检查器(scripts/checkpatch.pl)检查是否存在微不足道的违规。你应该能够证明你的补丁中存在的所有违规都是合理的。
  • 任何新的或修改后的 CONFIG 选项不会混乱配置菜单,并且默认关闭,除非它们符合《Documentation/kbuild/kconfig-language.rst》中记录的例外标准。菜单属性:默认值。
  • 所有新的 Kconfig 选项都有帮助文本。
  • 已经仔细审查了与相关 Kconfig 组合相关的内容。这在测试中很难做到正确,但在这里付出的智力努力会得到回报。
  • 使用 sparse 进行清晰检查。
  • 使用 make checkstack 并修复它发现的任何问题。
  • 注意:
  • checkstack 不会明确指出问题,但任何一个在栈上使用超过 512 字节的函数都可能需要更改。
  • 包含 kernel-doc 来记录全局内核 API。(对于静态函数不是必需的,但在那里也可以使用。)使用 make htmldocs 或 make pdfdocs 来检查 kernel-doc 并修复任何问题。
  • 已经测试了 CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT, CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_ATOMIC_SLEEP, CONFIG_PROVE_RCU 和 CONFIG_DEBUG_OBJECTS_RCU_HEAD 同时启用。
  • 已经进行了构建和运行测试,包括启用和禁用 CONFIG_SMP 和 CONFIG_PREEMPT。
  • 所有代码路径都已经启用了所有 lockdep 功能。
  • 所有新的 /proc 条目都在《Documentation/》下有文档。
  • 所有新的内核引导参数都在《Documentation/admin-guide/kernel-parameters.rst》中有文档。
  • 所有新的模块参数都使用 MODULE_PARM_DESC() 进行了文档化。
  • 所有新的用户空间接口都在《Documentation/ABI/》中有文档。查看《Documentation/ABI/README》获取更多信息。修改用户空间接口的补丁应该抄送到 linux-api@vger.kernel.org。
  • 已经检查了至少有 slab 和页面分配失败的注入。参见《Documentation/fault-injection/》。
  • 如果新代码很重要,可能需要添加特定子系统的故障注入。
  • 新添加的代码已经使用 gcc -W 进行了编译(使用 make KCFLAGS=-W)。这将产生大量噪音,但有助于发现诸如“警告:在有符号和无符号之间的比较”之类的错误。
  • 在合并到 -mm 补丁集后进行了测试,以确保它仍然能够与所有其他排队的补丁以及 VM、VFS 和其他子系统中的各种更改一起正常工作。
  • 所有内存屏障 {例如,barrier(), rmb(), wmb()} 都需要在源代码中有注释,解释它们的逻辑和原因。
  • 如果补丁添加了任何 ioctl,那么还需要更新《Documentation/userspace-api/ioctl/ioctl-number.rst》。
  • 如果你修改的源代码依赖于或使用与以下 Kconfig 符号相关的内核 API 或特性,那么请测试多个构建,禁用和/或 =m 相关的 Kconfig 符号(如果该选项可用)[不是同时禁用所有这些选项,而是各种/随机组合]:
  • CONFIG_SMP, CONFIG_SYSFS, CONFIG_PROC_FS, CONFIG_INPUT, CONFIG_PCI, CONFIG_BLOCK, CONFIG_PM, CONFIG_MAGIC_SYSRQ, CONFIG_NET, CONFIG_INET=n(但后者与 CONFIG_NET=y)。
相关文章
|
4天前
|
存储 安全 Linux
探索Linux操作系统的心脏:内核
在这篇文章中,我们将深入探讨Linux操作系统的核心—内核。通过简单易懂的语言和比喻,我们会发现内核是如何像心脏一样为系统提供动力,处理数据,并保持一切顺畅运行。从文件系统的管理到进程调度,再到设备驱动,我们将一探究竟,看看内核是怎样支撑起整个操作系统的大厦。无论你是计算机新手还是资深用户,这篇文章都将带你领略Linux内核的魅力,让你对这台复杂机器的内部运作有一个清晰的认识。
18 3
|
13天前
|
网络协议 Ubuntu Linux
用Qemu模拟vexpress-a9 (三)--- 实现用u-boot引导Linux内核
用Qemu模拟vexpress-a9 (三)--- 实现用u-boot引导Linux内核
|
13天前
|
Linux
用clang编译Linux内核
用clang编译Linux内核
|
13天前
|
缓存 Linux 开发工具
虚拟映射的内核栈支持 【ChatGPT】
虚拟映射的内核栈支持 【ChatGPT】
|
13天前
|
Linux API SoC
Linux电压和电流调节器框架 【ChatGPT】
Linux电压和电流调节器框架 【ChatGPT】
|
13天前
|
安全
原子替换和累积补丁 【ChatGPT】
原子替换和累积补丁 【ChatGPT】
|
13天前
|
安全 网络协议 测试技术
(取消)打补丁回调 【ChatGPT】
(取消)打补丁回调 【ChatGPT】
|
13天前
|
Linux API 调度
关于在Linux内核中使用不同延迟/休眠机制 【ChatGPT】
关于在Linux内核中使用不同延迟/休眠机制 【ChatGPT】
|
1月前
|
人工智能 自然语言处理 搜索推荐
chatgpt这么火,现在AI搜索引擎有哪些呢?
国外AI搜索引擎包括ChatGPT,擅长自然语言处理与内容生成;Google Bard,提供智能个性化搜索体验;Microsoft Bing集成GPT模型增强智能检索;Perplexity AI以简洁答案及文献引用著称;Neeva强调隐私保护与无广告服务。国内方面,天工AI支持多种功能如知识问答与代码编程;腾讯元宝基于混元模型助力内容创造与学习;360AI搜索以精准全面的信息搜索见长;秘塔AI专注提升写作质量和效率;开搜AI搜索提供个性化智能搜索服务。以上引擎均利用先进AI技术提升用户体验。更多详情参阅[AI搜索合集](zhangfeidezhu.com/?page_id=651)。
74 8
chatgpt这么火,现在AI搜索引擎有哪些呢?
|
26天前
|
机器学习/深度学习 人工智能 自然语言处理
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题
HuggingGPT是一个框架,它使用大型语言模型(如ChatGPT)作为控制器来管理和协调Hugging Face上的AI模型,以语言作为通用接口解决多模态和领域的复杂AI任务。
27 0
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题