上游 Linux 开发者反对
WireGuard 作者 Jason A. Donenfeld 上周向 Linux 内核提交了一个补丁,他建议在使用新发布的 GCC 10 编译器或更高的版本时,将内核的默认编译优化级别由 -O2 设置为 -O3。
Jason 解释道,GCC 10 对 -O2 进行了改进,以便在使用 -flto 时缩短编译时间,不过这似乎是以牺牲性能为代价来实现的。而现在的 -O3 优化不存在和 10 年前同样的 bug,所以当 gcc >= 10 时,他提交的补丁会将 Linux 内核的编译优化默认设置为 -O3 级别。
对于这个提交,部分开发者表示有兴趣支持 -O3 优化级别的子集功能,甚至探索 -Og 级别的优化,并努力缩短构建内核花费的时间,以便于测试。
不过总体看来,将内核默认编译优化级别设置为 -O3 的提案遭到了广泛的反对,因为这不一定会让内核变得更快,反而有可能会引入因优化而导致出现的特殊特性,甚至会产生让代码变得更慢的地方。
Linus Torvalds 也进行了表态,他不认为这是一个明智的想法,尤其是 GCC -O3 级别的优化有时会导致出现问题。
GCC 开发者 Richard Biener 也写道,他不建议在内核中使用 -O3 级别的优化。他曾经提出使用 feedback/profile-driven 的数据让编译器做出更好优化决策的想法,但这会是一个非常庞大的任务,需要为 FDO 收集到足够的数据才能体会到方便之处。
因此,至少目前来看,Linux 内核似乎不会追求这种更具侵略性、更激进的编译器优化级别。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
谷歌 Chrome 标签组功能将于下周上线
谷歌方面宣布,经过 19个月的开发,其计划于下周发布的 Chrome稳定版本中上线“标签组”功能。该功能将在所有受支持的桌面平台(包括 Chrome OS、Windows、Mac 和 Linux 操作系统)上可用,Android 版本的 Chrome 尚未获得此功能。 据介绍,标签组是一套管理 Chrome 标签页的进阶新功能,可以帮助用户系统化管理标签页。用户只需单击鼠标右键,即可将选项卡分组在一起,并用自定义名称和颜色对其进行标记。将选项卡组合在一起后,用户可以在选项卡条上移动它们并对其重新排序。 Chrome 用户体验工程师 Edward Jung 在公告中解释道,“我们测试了标签组已有几个月了,并且我们正在寻找新的方法来保持井井有条。通过我们自己的用法和早期用户研究,我们发现有些人喜欢按主题对 Chrome 标签进行分组。例如,如果您正在从事多个项目,或者正在浏览多个购物和评论网站,它会有所帮助。” 用户可以根据任务紧急程度对标签进行分类,也可以通过网页类型来分类。同样,标签组也可以帮助用户跟踪某些任务的进度。此外,用户还可以为标签组命名,以及调整标签组颜色。标签组是可自定义的...
- 下一篇
Linux Kernel 5.8 将为 blk-mq 引入内联加密支持
为了提供更好的加密性能,目前谷歌工程师正在为 Linux 文件系统加密管理工具 fscrypt 添加内联加密支持。而与之相关的开发包括在 Linux 5.8 的块设备队列管理blk-mq 中引入内联加密。 fscrypt 是用于Linux 文件系统加密管理的高级工具,它管理元数据、密钥生成、密钥封装与 PAM 集成,并提供用于创建和修改加密目录的统一界面。fscrypt 的内核部分已集成到诸如 ext4 的文件系统中。 blk-mq 则是 Linux 的块设备层多队列机制,它将 Linux 内核存储栈中请求层的单队列改成多队列,理论上提升性能。 如果接下来blk-mq 支持内联加密,那么它能够在存储栈中向下传递加密上下文,目前 Linux 内核源码 commit 中解释:我们必须通过某种方式让存储设备驱动程序知道它应该用于加密/解密请求的加密上下文。而上层(例如文件系统/fscrypt)知道情况并且管理加密上下文。这样,当上层提交 BIO 到块层,这个 BIO 最终到达的设备驱动程序支持内联加密,那么设备驱动程序则已经表明了 BIO 的加密上下文。 代码上具体改动是将 struct b...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Mario游戏-低调大师作品
- 2048小游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作