英特尔希望将其 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 做准备。

相关链接:

  • https://lore.kernel.org/lkml/CAHk-=wi=TY3Kte5Z1_nvfcsEh+rcz86pYnzeASw=pbG9QtpJEQ@mail.gmail.com/

  • https://lore.kernel.org/lkml/CAHk-=whKuB=mno0a5i9g7hPGdKhz3d5DErTZZGs3FjMW4ap4GA@mail.gmail.com/

Linus批评英特尔的LAM代码,拒绝将其合并到内核相关推荐

  1. Linus 批评英特尔的 LAM 代码,拒绝将其合并到内核

    来源:OSC开源社区(ID:oschina2013) 英特尔希望将其 LAM(Linear Address Masking :线性地址掩码) 功能合并到 Linux 6.2,但该功能被 Linus 批 ...

  2. Linux作者批评英特尔指令集,英特尔回应 Linus Torvalds 对 AVX512 的批评

    英特尔回应 Linus Torvalds 对 AVX512 的批评 Linux 作者上个月抨击了英特尔的 AVX512 指令集. 他还希望该指令集能早日成为历史. Torvalds 不是唯一一位批评 ...

  3. Linux作者批评英特尔指令集,Linux之父炮轰英特尔:ECC内存很重要,不好买都怪你胡搞...

    原标题:Linux之父炮轰英特尔:ECC内存很重要,不好买都怪你胡搞 Linux之父炮轰英特尔:ECC内存很重要,不好买都怪你胡搞 原创PCEVA评测室2021-01-06 11:31:08 很多人认 ...

  4. “Linux之父”Linus 获颁英特尔首个终身创新成就奖

    作者:何苗 出品:CSDN资讯 Linus Torvalds大名鼎鼎,被认为是世界上最伟大的程序员之一,三十多年前开创了 Linux内核,写出了一款大获成功的类 Unix 操作系统.这款使用最广泛的软 ...

  5. 英特尔实感SDK 代码示例

    https://www.cnblogs.com/IDZPRC/p/4949639.html

  6. linux启动注册内存失财,Linux创建者开喷英特尔:扼杀ECC内存市场

    来源:内容由半导体行业观察(ID:icbank)编译自「tomshardware」,谢谢. 在最近的一个有关纠错码(ECC:error correction code )内存的谈论中,Linux的创建 ...

  7. 「重返18岁」!英特尔首任CTO重磅回归,以CEO身份重掌帅印

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 转载自:新智元 [导读]英特尔CEO司睿博(Bob Swan)将于2月15日离职.继任者是曾在英 ...

  8. 英特尔联合Facebook研发AI芯片:CPU老厂能在AI时代打好翻身仗吗

    https://www.toutiao.com/a6644002993349853699/ 2019-01-08 14:04:53 来自国外技术网站"technologyreview&quo ...

  9. 苹果面向Mac发布英特尔处理器漏洞缓解措施

    2019独角兽企业重金招聘Python工程师标准>>> 去年苹果向Safari浏览器推出安全更新以修复基于ARM价格和英特尔的处理器存在的推测执行系列安全漏洞. 不过当时苹果并未发布 ...

最新文章

  1. debian,ubuntu下安装MariaDB,并设置密码,修改端口,允许外网访问
  2. 网站如何进行渠道跟踪_开发网站不知道如何进行推广?5个技巧教会你
  3. Node.js 博客实例(三)添加文件上传功能
  4. java nosql_Java EE的NoSQL的未来
  5. html5遍历集合数据,HTMLCollection集合能打印出来值,但是无法获取每一个值。
  6. Eclipse中src/main/resources配置文件启动问题
  7. LeetCode--palindrome-number回文数
  8. 分布式缓存Memcached---开篇的话
  9. 小白的springboot之路(十)、全局异常处理
  10. 2015-2020年各类国际会议与期刊基于图像的三维对象重建论文综述(5)——Leveraging other clues
  11. Confluence 6 配置索引语言
  12. 原始套接字与抓包过滤规则setsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER, ...)
  13. java方法栈和c方法栈_Java虚拟机:本地方法栈与Native方法
  14. 为什么要学习鸿蒙,HarmonyOS不只是操作系统
  15. 论文绘图——矢量图篇
  16. M3U8视频AES解密播放
  17. 网卡,交换机和路由器
  18. 计算机or笔记本,笔记本or台式机 这几款戴尔主机性能上没得挑
  19. win10和win server 2016新的TCP功能介绍
  20. 虚拟文字内容、图片、头像生成工具

热门文章

  1. @Resource()注解报红
  2. 三大运营商充话费送手机,里面的套路太深
  3. android源码结构分析
  4. 我的世界rpg服务器无限点卷无限金币地址,我的世界RPG插件无限刷任何物品 | 手游网游页游攻略大全...
  5. mysql之关联更新(update join,用b表更新a表记录)
  6. 帝国CMS(EmpireCMS) v7.5配置文件写入漏洞分析
  7. IPHONE苹果手机短信短消息备份导出,格式分析,数据库sqlite
  8. agv系统介绍_AGV有什么用
  9. Docker compose 环境变量env_file相关
  10. 看最强大脑中英PK小记