英特尔新型缓存功能有望纳入主线
近来,由于 Spectre/Meltdown CPU 漏洞以及其他类似的硬件问题不断涌现,英特尔在各界的名声都不太好。但是,最近英特尔的一些人员和内核人员之间进行了一次讨论,这次讨论与上述问题无关。内核人员和公司人员之间仍然存在一些争论,但似乎更多的是为了绕过营销语言,而不是纠缠于英特尔为修复其长期存在的硬件缺陷所做的事情。
英特尔的 Reinette Chatre 发布了一个针对名为 缓存分配技术 (CAT) 的新芯片功能的补丁,该功能“使用户可以指定应用程序可以填充的缓存空间量”。 除此之外,Reinette 还声明:“缓存伪锁定方法依赖于处理器的特定代行为。它可能在某些处理器代中提供优势,但不保证将来会得到支持。”
Thomas Gleixner 认为英特尔的工作看起来非常有趣,并且总体上非常有用,但他问道:“您的意思是 CAT 机制在未来 [即在未来的 CPU 芯片设计中] 可能会发生根本性的变化,以至于访问不属于当前执行上下文的已分配区域中的缓存数据将不再起作用吗?”
Reinette 回复说:“缓存伪锁定是一项特定于型号的功能,因此当前和未来的设备在是否支持或在多大程度上支持缓存伪锁定方面可能存在一些差异。CAT 仍然是架构性的。”
Thomas 回复说:“这根本没有回答我的问题。”
此时,英特尔的 Gavin Hindman 加入了讨论,说道
当前一代产品线的支持并不意味着未来一代也会支持。当然,我们将尽一切努力向前推进支持,并会适应 CAT 支持的任何变化,但我们无法预测未来可能发生的架构变化,这些变化可能会阻止在 CAT 之上使用伪锁定用例。
Thomas 回复说:“这才是真正的问题。我们添加了一些可以提供某种形式隔离的东西,但我们不知道下一代 CPU 是否会工作。从可维护性和实用性的角度来看,这不是一个非常好的前景。”
在讨论的另一部分,Thomas 问道:“是否有实际用例可以真正从 [CAT 功能] 中受益?一旦该功能在未来几代处理器中失效,这些应用程序应该怎么做?”
Reinette 回复说:“此功能是特定于型号的,目前只有少数平台支持它。只有已知支持缓存伪锁定的平台才会公开其 resctrl 接口。”
对此 Thomas 说:“你又故意避免回答我的问题。”
Gavin 现在回复说
Reinette 并不是想回避问题,我们只是目前不一定有明确的答案。目前,伪锁定需要在集成商方面进行手动设置,因此,当尝试将期望伪锁定的软件移植到新设备时,不会出现任何不可见的损坏,如果情况在未来发生变化,我们肯定会尽一切努力最大限度地减少用户空间/配置对迁移的影响,但这些都是未知的。我们现在有点像鸡生蛋蛋生鸡的问题,人们没有广泛使用它,因为它不是架构性的,而它不是架构性的,因为人们没有广泛使用它。我们可以公开地将补丁从主线中移出,但我们将补丁推送到主线的目的是 a) 增加曝光率/使用率 b) 减少已经在使用的黑客版本之间的差异,以及 c) 减轻在使补丁与不断发展的更大的 CAT 基础设施保持同步方面的开销 - 我们清楚提交非架构功能所带来的潜在支持负担,并且肯定没有将科学实验倾倒到主线中的意图。
Thomas 回复说:“好的。所以您的意思是“官方”支持应该扩大用户群,这反过来可能会将其推向架构领域。我会考虑到这一点来查看补丁集。”
在其他地方,Thomas 和 Reinette 进行了一次更技术性的数据交换,Reinette 提供了有用的数据点,用于理解 CAT 功能本身的价值。对此,Thomas 说:“非常好。非常感谢您这样做。这种数据真的很有价值。我从中学到的是:所有机制都只是尽力而为,真正的益处是降低了平均延迟。最坏情况的异常值似乎也在同一范围内。” 并且,他承诺审查英特尔补丁的下一个版本,Reinette 预计将在本周内发送。
因此,在英特尔试图摆脱 Spectre/Meltdown 的影响之际,它继续与内核开发人员合作开发此类功能。与此同时,人们很难忘记其硬件问题尚未结束,甚至现在仍在不断发现新的 CPU 缺陷。Linus Torvalds 将英特尔的一些声明解释为英特尔不打算在未来几代 CPU 中修复其某些硬件缺陷,这将迫使内核开发人员和其他操作系统开发人员在可预见的未来解决这些缺陷。因此,即使在合作开发像 CAT 这样相对简单的新功能的背景下,也存在很多紧张关系。
注意:如果您在上面被提及,并想在评论区上方发布回复,请将包含您的回复文本的消息发送至 ljeditor@linuxjournal.com。