我们如何获得这个神奇的性能提升 200 行补丁?

pop*_*pey 65 performance patch kernel

今天在 Phoronix读到Linux 内核有一个200 行的补丁,可以显着提高桌面响应速度。

Ubuntu 用户如何以受支持的方式获得它?

小智 59

关于这个特定补丁的讨论发生在 Ubuntu 内核团队邮件列表上:

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

但是让我尝试更笼统地详细说明任何补丁进入 Ubuntu 内核的最佳方式......

首先,Ubuntu 内核团队的首选策略是在将补丁放入 Ubuntu 内核之前提交并接受上游。必须维护树外补丁对 Ubuntu 内核团队来说是一个很大的维护负担。此外,如果补丁将使整个内核社区受益,它应该首先进入上游。

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

如果补丁需要作为 SRU(稳定版本更新)应用到以前的 Ubuntu 版本,最好让补丁被接受到相应的上游稳定 2.6.xy 树中。作为我们正常内核 SRU 流程的一部分,我们不断地重新调整到最新的上游稳定内核。因此,我们最终会再次自动获得补丁。

  • 这个补丁很可能在 v2.6.38 内核中,这意味着它很可能在 Natty 版本中。一旦补丁出现在 Linus 的树中,我们就会知道得更好。 (4认同)

Rog*_*ght 20

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

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

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

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

显然这并不能回答问题,但它可以用来确定补丁是否如预期的那样神奇。

  • 我认为更多的人需要意识到这一点。 (4认同)

Oli*_*Oli 12

Ubuntu 用户如何以受支持的方式获得它?

强调我的。以受支持的方式获得它的唯一方法是等待 Ubuntu 将其拉入 Ubuntu 内核。由于这实际上只是将其添加到内核邮件列表中,因此所有测试都是轶事,我想它还需要一段时间才能准备好大规模部署。

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


但是,如果您是个大男孩(或女孩)并且可以在出现问题时处理损坏的内核(即您知道如何使用 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. 然后继续其余的“老式”构建过程......我真的不会打扰较新的方法,因为它们针对的是 Ubuntu/Debian 认可的内核源......加上旧的方法似乎更容易(对我来说)。

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


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

  • 我相信Zen Kernel在他们的树中有这个补丁,但我不确定它是否在任何版本中。
  • Liquorix内核已经出炉这在现在也是。

注意:这两个内核(可能还有其他内核)都在某种程度上偏离了 Ubuntu 处理内核的方式。您可能会发现(就像我搬到 Liquorix 时所做的那样)CPU 频率缩放停止工作或暂停被破坏。通常有修复和变通方法,但您可能不会从 AskUbuntu 或其他 Ubuntu 社区获得支持,因为我们无法检查那里的每个内核。


Ali*_*rei 5

您可以使用 RedHat 开发人员在邮件列表上发布的简单“hack”,不需要修补内核即可获得相同的内容。在这里阅读:替代“200 行内核补丁,创造奇迹”,您可以立即使用