当前位置: 首页>>技术问答>>正文


我们如何获得这个神奇的performance-boosting 200系列补丁?

, , ,

问题描述

I read today on Phoronix表示Linux内核有一个200 line patch可以显著提高桌面响应能力。

Ubuntu用户如何以支持的方式获得此功能?

最佳解决思路

有关此特定补丁的讨论发生在Ubuntu kernel-team邮件列表中:

https://lists.ubuntu.com/archives/kernel-team/2010-November/013498.html

但是,让我试着更详细地说明任何补丁进入Ubuntu内核的最佳方式……

首先,Ubuntu内核团队的首选策略是在被引入Ubuntu内核之前提交并接受上游补丁。对于Ubuntu内核团队而言,维护不受树补丁影响是一个巨大的维护负担。此外,如果补丁将使整个内核社区受益,它应首先进入上游。

一旦补丁被上游接受,它最终将自动进入Ubuntu内核。如果需要,也可以进行cherry-pick或拉取请求,请参阅页面KernelPatches以获取更多信息。

如果需要将补丁作为SRU(stable release update)应用于之前的Ubuntu版本,则最好将补丁接受到相应的上游稳定2.6.x.y树中。作为我们正常内核SRU过程的一部分,我们不断重新定义到最新的上游稳定内核。因此,我们最终会再次自动获得补丁。

次佳解决思路

我刚刚阅读了lkml线程,并希望我能提供一些信息 – 尽管不是将补丁纳入Ubuntu。正如链接的Ubuntu列表中的帖子所说,无论如何它可能会在2.6.38中。

补丁自动根据TTY对进程进行分组。关于lkml有很多讨论/争论说这意味着它与典型的桌面使用无关 – 它对交互式应用程序没有任何影响。测试用例都基于“从终端启动CPU密集型任务,然后查看另一个任务的响应性”。例如,编译内核并尝试观看视频。

这并不是说它不好,但如果您从未运行连接到TTY的CPU密集型任务,那么一般的“桌面响应度提高一个数量级”类型的标题可能会产生误导。我当然可能是错的!

通过添加到bash脚本并允许所有用户创建cgroup,有一些提到了实现非常相似结果的方法。这仅在当前Ubuntu内核启用了cgroup时才有效。相关职位是:

显然这并没有回答这个问题,但它可以用来确定补丁是否像希望的那样神奇。

第三种解决思路

How can Ubuntu users get this in a way that’s supported?

强调我的。以受支持的方式获得它的唯一方法是等待Ubuntu将其拉入Ubuntu内核。由于这实际上只是进入内核邮件列表,因此所有测试都相当轶事,而且我想它还需要一段时间才能成为mass-deployed。

在下一个版本和很长一段时间之间的某个地方将是我没有受过教育的猜测。


但是,如果你是一个大男孩(或女孩),如果出现问题你就可以应对破碎的内核(即你知道如何使用grub),你可以修补并编译自己的内核。

  1. 下载补丁。有不同的版本,但最好的自己在下面由另一个用户发布:http://pavlinux.ru/krnl/sched_autogroup-2.6.36.patch.bz2

  2. 下载修补程序所针对的版本的内核源代码。在这种情况下2.6.36。您可以从kernel.org获取vanilla(这是Ubuntu内核团队未经修改的原始内核)并提取它。

  3. 将补丁保存到某处并通过cd将其应用到内核源代码并运行:patch -p1 < /path/to/patch(您需要patch包…如果没有默认安装,我认为它是build-essential的一部分)

  4. And then continue with the rest of the “old fashioned” build process…我真的不打算使用更新的方法,因为它们针对的是Ubuntu /Debian-sanctioned内核源代码……加上旧的方式似乎更容易(对我而言)。

构建内核并不难,但如果你离开已接受的路径太远,你可能会搞砸它。如果出现问题,你将无法获得官方支持。


或者,内置补丁的新内核越来越多(或者至少在源代码树中等待下一个版本)。

  • 我相信Zen Kernel在他们的树中有这个补丁但是我不确定它是否在任何版本中。

  • Liquorix Kernel现在也已经烘焙了。

注意:这两个内核(也可能是其他内核)在某种程度上偏离了Ubuntu的内核方式。您可能会发现(就像我移动到Liquorix时那样)CPU频率缩放停止工作或暂停中断。通常有修复和变通方法,但是你不可能得到AskUbuntu或其他Ubuntu社区的支持,因为我们无法检查那里的每一个内核。

第四种思路

您可以在邮件列表中使用由RedHat开发人员发布的简单”hack”,这不需要修补内核来获取相同的内容。在这里阅读:Alternative To The “200 Lines Kernel Patch That Does Wonders” Which You Can Use Right Away

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1039.html,未经允许,请勿转载。