Linus 批评英特尔的 LAM 代码,拒绝将其合并到内核
英特尔希望将其 LAM(Linear Address Masking :线性地址掩码) 功能合并到 Linux 6.2,但该功能被 Linus 批评了一番,并拒绝了该合并。
英特尔线性地址掩码 (LAM) 允许软件将 64 位线性地址的未转换地址位用于元数据,线性地址使用 48 位(4 级分页)或 57 位(5 级分页),而 LAM 允许将 64 位线性地址的剩余空间用于元数据。
简而言之,英特尔 LAM 在使用用户空间地址的未翻译地址位,因此它可用于用户空间内存清理和标记等元数据的多种用途,它的本质上类似于 AMD 的高位地址忽略“UAI”(Upper Address Ignore )以及 Arm 的顶部字节忽略“TBI”(Top-Bits-Ignore)功能。
英特尔在 2020 年初次对外展示 LAM,从那以后一直致力于 Linux 内核支持。11月中旬,英特尔工程师为 Linux 6.2 的 x86/mm 分支提交了大量补丁,希望将该功能代码合并到内核中。
然而,LAM 随即遭受了 Linus 的猛烈批评,不仅是内核实现代码,Linus 甚至连“LAM” 这个名称都不满意:
现在要求英特尔将这个 LAM 功能称为“Top-Bits-Ignore” (TBI) ,会不会有些太晚了?
...
整个 LAM 功能不是特定于 mm ,它可以轻松影响每个线程。
想象一下,有一个设置,其中一些线程使用标记指针,而一些线程不使用。例如,地址的高位可能包含一个仅在虚拟机中使用的标签,甚至可以让“本机”模式使用完整的地址空间,并将其自身及私有数据虚拟地放在高位。
再想象一下,使用虚拟地址掩码不仅能实现内存清理器,还能实现一种真实的分离功能(例如,JITed 代码可能基本上只能访问较低的位,而 JITter 本身可以看到整个地址空间)。
也许这不是 LAM 在 x86 上的工作方式,但它对 untagged_addr() 的更改并不是 x86 特定的。所以我真的认为这是完全错误的,除了命名之外, 它全都是一些无效的假设。事实上,这个特定于 mm 的 LAM 功能,最后只会成为代码中一个活跃的 Bug ,即使在 x86-64 上也是如此。
所以我真的认为 LAM 是一个根本性的设计错误,虽然我把它拉出来并解决了琐碎的冲突,但我又把它拉了下来,因为它的设计是错误的。
Linux 内核邮件列表讨论了对英特尔的 LAM 的 Linux 实现方式的设计更改。但 Linus 认为英特尔 LAM 代码还没有为 Linux 做好准备,因此最终没有合并代码。英特尔已提交新的 x86/mm pull ,但删除了 LAM 代码。英特尔 Linux 工程师将重新编写 LAM 代码,为 Linux 6.3 做准备。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
sonic < 1.0.5存在任意文件下载漏洞
漏洞描述 Sonic 是由 Go语言开发的一款博客平台。 Sonic < 1.0.5 版本存在目录穿越漏洞,原因是BackupWholeSite函数中filepath.Join方法对于接收的参数未进行过滤处理,导致可以直接进行目录穿越。远程攻击者可以通过此漏洞读取并下载任意文件。 漏洞名称 sonic < 1.0.5存在任意文件下载漏洞 漏洞类型 通过目录枚举导致的信息暴露 发现时间 2022-12-16 漏洞影响广度 极小 MPS编号 MPS-2022-68295 CVE编号 - CNVD编号 - 影响范围 sonic@(-∞, 1.0.5) 修复方案 升级sonic到 1.0.5 或更高版本 参考链接 https://www.oscs1024.com/hd/MPS-2022-68295 https://github.com/go-sonic/sonic/issues/56 Commit 情报订阅 OSCS(开源软件供应链安全社区)通过最快、最全的方式,发布开源项目最新的安全风险动态,包括开源组件安全漏洞、事件等信息。同时提供漏洞、投毒情报的免费订阅服务,社区用...
- 下一篇
恭喜 Dromara HertzBeat 新晋两位 Committer
非常高兴 Dromara HertzBeat 迎来了两位新晋社区Committer, 两位都是来自互联网公司的开发工程师,让我们来了解下他们的开源经历吧! 第一位 花城 姓名:王庆华 现从事:阿里巴巴开发工程师 HertzBeat Committer github:wang1027-wqh 初识hertzbeat 说起来挺偶然的,结识hertzbeat是因为我大学的毕业设计,当时在一家互联网公司实习,那个时候第一次看到了企业是怎么监控项目的,不管是系统监控、业务监控还是物联网iot监控,那个时候见世面不广,只知道Prometheus + Grafana,但是学起来、用起来成本比较高,那个时候就觉得应该有其他类型的监控,恰好,到了大学毕业设计选题,我就开始寻找这方面的开源项目,那个时候我们小组正在使用Shen Yu网关,我就看了下社区,发现了hertzbeat,自此我便于它结缘了。 开始提交PR 到了2022-02-18 我开始提交了我第一个pr,当时只是为了优化一些controller入参的格式,没有什么技术含量,但是这是我接触开源的第一步,让我在从理论学习跨出了实践的一步 持续的开源...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8安装Docker,最新的服务器搭配容器使用