与可抢占内核补丁维护者 Rober 的访谈

作者:Rick Lehrbaum

在本次访谈中,《Linux Journal》与 Robert Love 进行了对话,他是日益流行的内核抢占补丁的主要维护者,该补丁提高了 Linux 内核的实时响应能力。Robert 描述了他在项目中的角色,解释了为什么抢占增强对于超出嵌入式/实时(包括最终用户的桌面)的广泛 Linux 应用程序非常重要,并分享了他对 Linux 在嵌入式和桌面市场未来前景的看法。

An Interview with Preemptible Kernel Patch Maintainer Rober

Robert Love,可抢占内核补丁的主要维护者

Rick 您作为 Linux 内核可抢占内核补丁的维护者而闻名。这种情况是如何发生的?

Robert 我对创新想法很感兴趣,而可抢占内核是一个非常棒的概念。这个想法最初在 2.3 期间被讨论(我们终于有了一个具有足够细粒度锁定的内核,这是可行的)——Linus 实际上概述了最初的设计。MontaVista 在此期间发布了一个补丁,并在 2.4 的早期版本中对其进行了研究。

大约在这个时候,我尝试了这个补丁,将其重新 diff 到最新的内核,并开始进行更改。我最终发布了它们。人们开始尝试它,并且补丁的使用量开始激增。从那时起,我一直努力工作。

Rick 您所做的工作与 MontaVista Software 使用其可抢占内核补丁所做(或正在做)的工作之间有什么不同?您现在是否与他们合作,如果是,合作有多密切?

Robert 我现在维护的补丁是 MontaVista 的。他们仍然投入时间在这个补丁上,我与他们的几位工程师密切合作。显然,自从我参与以来,它已经发展了很多,但它仍然是他们的工作。我相信他们正在他们的产品中使用最新的版本。

Rick 据我了解,您对可抢占内核的兴趣是出于一些原因,这些原因往往会引起更广泛的 Linux 应用程序(如音频/视频流等)的兴趣,而不是 MontaVista 专注于嵌入式/实时系统。这准确吗?您能否举例说明您的补丁可以显著提高哪些类型应用程序的性能?

Robert 这是正确的。我将可抢占内核视为实现整体更好系统的一种手段。除了低延迟的传统市场(音频/视频、专用嵌入式/实时等)之外,抢占式内核还可以使任何交互式任务受益。其结果有望实现更流畅、响应更快的桌面。

Rick 添加可抢占内核补丁后,Linux 的性能是否优于最新版本的 MS Windows 为桌面、企业和嵌入式用户提供的性能?

Robert 我不知道我们与 Windows 相比性能如何。我当然会说,即使是早期版本的 Linux 也优于 Windows 9x。我们与 Windows NT(即 2000 和 XP)在桌面性能方面的比较很难衡量。

内核的延迟当然可以衡量——调度延迟、抖动等都是定量的——但桌面的质量仅仅始于内核。这意味着 X 和其上的所有内容也包含在内。

Rick 当 Red Hat 宣布他们将使用 RTLinux 为其客户提供实时功能时,Mike Tiemann(Red Hat 的 CTO)和 Alan Cox 都公开表示实时不属于内核。您对此有何评论?

Robert Red Hat 在这里有一个议程,当存在偏见时,我往往会忽略任何技术评论。硬实时中断驱动方法有其优点,我并不否认,但该解决方案不是 Linux。我认为 Linux 可以在不放弃自身的情况下成为嵌入式/实时市场中的竞争者,同时仍然是 UNIX 并具有标准的 Linux API。事实上,我认为许多实现这一目标的技术可以直接存在于官方内核中。内核抢占就是这样一项创新,它不仅有利于实时应用程序。

Rick 您是否从 Linus 或其他关键内核维护人员那里看到任何迹象表明您的补丁(或 MontaVista 补丁)正在被认真考虑用于 2.5 内核?您认为它被纳入 2.5 或 2.6 的可能性有多大?

Robert Linus 在今年的 ALS [年度 Linux 展示会] [2001 年] 上表示,他对可抢占内核补丁感兴趣。在它被纳入之前,这对我来说没有任何意义,但这是一个好兆头。存在反对意见。有各种各样的问题需要处理。我认为对于 2.5 来说,这是一个明智之举。该补丁已经过大量测试,我们有很多用户。我不想预测它是否会被合并到 2.5 中。时间会证明一切。[在本次访谈之后,宣布 Linus 已将该补丁合并到主 Linux 开发内核树中,从版本 2.5.4-pre6 开始。]

Rick 请总结一下包含在内核中的可抢占内核增强功能的一般优势,而不仅仅是针对嵌入式实时应用程序。有什么缺点吗?

Robert 我将首先快速解释一下补丁的工作原理。目前,内核是不可抢占的。这意味着在内核中运行的代码会一直运行到完成,这是我们延迟的根源。尽管内核代码编写良好且受到监管,但最终结果是我们有效地对在内核中花费的时间设置了无限的限制。在内核模式下花费的时间可能会增长到数百毫秒。对于某些需要低于 5 毫秒延迟的任务,这种不可抢占性是一个问题。

可抢占内核补丁改变了这一切。它使内核可抢占,就像用户空间一样。如果更高优先级的任务变为可运行,则抢占补丁将允许它运行。无论它在哪里。我们可以在任何地方进行抢占,但受 SMP-[对称多处理] 锁定约束。也就是说,我们使用自旋锁作为可抢占区域的标记。当然,在 UP [单处理] 上,它们实际上不是自旋锁,只是标记。

对响应的改进是显而易见的:高优先级任务可以在需要时立即运行。这是实时计算的必要条件,在实时计算中,您需要实时任务在变为可运行时立即运行。但同样的效果也适用于正常的交互式任务:一旦发生事件(例如用户单击鼠标)使其变为可运行,它就可以运行(当然,受不可抢占区域的约束)。

有一些反对论点。首先是可抢占内核会降低吞吐量,因为它引入了复杂性。然而,测试表明,它几乎在所有情况下都提高了吞吐量。我的假设是,对事件的更快响应有助于交互性,也有助于吞吐量。当 I/O 数据可用并且可以从等待队列中删除任务并继续执行 I/O 时,可抢占内核允许它立即发生——实际上,只要设置 need_resched 的中断返回即可。这意味着更好的多任务处理。

还有其他问题。现在,我们必须注意每个 CPU 的变量。在 SMP 内核中,每个 CPU 的变量是隐式锁定的——它们没有显式锁,但由于它们对于每个 CPU 都是唯一的,因此另一个 CPU 上的任务无法触及它们。抢占使这成为一个问题,因为被抢占的任务可能会在没有锁的情况下破坏变量。

总的来说,我认为这些问题可以得到解决,我们可以拥有一个可抢占内核作为解决内核延迟的正确解决方案。

Rick 从您对可抢占内核如何工作的简要解释中,我得到的印象是,除了在用户的系统上安装修改后的内核以获得好处之外,无需执行任何新操作。具体来说,如果我在我的桌面系统上安装打过补丁的内核,我是否会立即开始注意到我在系统上工作(和玩耍)期间的性能改进,例如在下载或刻录 CD 的同时收听流式音频或观看流式视频?或者,我是否需要能够利用内核抢占功能的应用程序?是否需要更改我运行的应用程序的优先级,或进行任何其他调整?

Robert 您无需执行任何操作。可抢占内核补丁不需要更改用户应用程序、环境或 API。更改(从切换到可抢占内核)应该是立即的。您的普通程序和您的普通基准测试将显示延迟的改进。重新调整程序的优先级会有所帮助,仅仅是因为它们将能够更轻松地获得抢占的好处(它们需要做的任何事情都可能导致抢占)。

这就是为什么我看到这个解决方案的优雅之处;Linux 可以变得更 RT,而不会放弃自身。

Rick 请描述一下您自己,您做什么以及您的兴趣是什么。此外,您在 Linux 方面的背景以及您对开源软件的理念是什么?

Robert 我是佛罗里达大学数学和计算机科学专业的学生,最初来自南佛罗里达。我六七年前首次使用 Linux,使用的是早期的 Slackware 版本。在过去的几年里,我只运行 Linux。

在计算之外,我真的很喜欢摇滚音乐、美食和军工联合体。

我对开源的理念是一个实用主义者。虽然我享受代码的自由,并且当然赞赏从自由软件中获得的权利,但我认为仅仅拥有开放代码的最大好处。我可以看到它;我可以修复它;我可以玩它。有了足够的动力,开源创造了令人惊叹的软件。我为我们的内核感到非常自豪。

Rick 您每周大约花费多少时间在 Linux 的内核补丁上?

Robert 我的女朋友可能会说太多了。从每周几个小时到每天很多小时不等。

Rick 您对 Linux 在嵌入式市场以及家庭和企业桌面计算机市场的未来前景有何看法?

Robert Linux 在嵌入式市场中发展前景广阔。我相信您和任何人一样都能看到那里的巨大潜力。Linux 提供了关键优势——特别是可用的源代码和高度可配置的系统——这应该对嵌入式领域具有吸引力。它很轻巧,因此可以很好地嵌入。它有一个简单的 API。存在许多用户空间解决方案,并且很容易创建全新的解决方案。

我当然认为 Linux 是一个出色的桌面系统(GNOME 和 KDE 都非常成熟),但我看不到明年在这里取得巨大进步。市场份额肯定会增加,甚至可能显著增加,但我们今年不会超越任何邪恶的垄断企业。

Rick 您还有什么要补充的吗?

Robert 所有这些有趣的东西的最新版本都可以在 FTP 下载,网址为 ftp.kernel.org/pub/linux/kernel/people/rml 或您最喜欢的镜像站点。

Rick 非常感谢!

编者注:请关注下个月刊登的 Robert 关于其抢占工作的文章。

Rick Lehrbaum (rick@linuxdevices.com) 创建了 LinuxDevices.comDesktopLinux.com 网站。Rick 自 1979 年以来一直在嵌入式系统领域工作。他共同创立了 Ampro Computers,创立了 PC/104 Consortium,并在创建和启动 Embedded Linux Consortium 方面发挥了重要作用。

加载 Disqus 评论