Intel CPU BUG:迫使重新设计 Linux 和 Windows,可能电脑性能会下降 30%

2018-01-03 21:16:34 +08:00
 dyxang
英特尔处理器芯片爆出了一个根本性的设计缺陷,已迫使业界大刀阔斧地重新设计 Linux 内核和 Windows 内核,旨在消除这个芯片层面的安全缺陷。

广大程序员正竞相全面改动开源 Linux 内核的虚拟内存系统。与此同时,预计微软会在即将到来的周二补丁日( Patch Tuesday )公开宣布对其 Windows 操作系统所作的必要改动:这些更新已发给在去年 11 月和 12 月运行快速更新通道( fast-ring )的 Windows Insider 版本的 beta 测试人员。

至关重要的是,针对 Linux 和 Windows 的这些更新将会给英特尔产品的性能带来影响。实际影响仍在测试当中,不过我们估计性能大概会因此降低 5%到 30%,这取决于具体的任务和处理器型号。最近面市的英特尔芯片拥有 PCID 等功能特性,可以缓解性能受影响这个问题。

https://f11.baidu.com/it/u=3351647494,3190822991&fm=173&s=0D82FD1205585DC80CE525DE0000C0B3&w=627&h=320&img.JPEG&access=215967316

据悉,该缺陷存在于过去十年生产的现代英特尔处理器中。它让普通的用户程序(从数据库应用软件到互联网浏览器中的 JavaScript )在一定程度上得以发现受保护内核内存里面的数据。
解决方法就是,使用所谓的内核页表隔离( KPTI )功能,将内核的内存与用户进程完全分离开来。Linux 内核开发团队一度考虑过 Forcefully Unmap Complete Kernel With Interrupt Trampolines (又名 FUCKWIT ),让你了解这个问题对开发人员来说有多烦人。
只要运行中的程序需要执行任何有用的操作,比如写入到文件或建立网络连接,它就要暂时将处理器的控制权交给内核以便执行任务。为了尽可能快速而高效地从用户模式切换到内核模式,再切换回到用户模式,内核存在于所有进程的虚拟内存地址空间中,不过这些程序看不见内核。需要内核时,程序进行系统调用,处理器切换到内核模式,进入内核。完成后,CPU 被告知切换回到用户模式,重新进入进程。在用户模式下,内核的代码和数据依然看不见,但存在于进程的页表中。
不妨把内核想象成坐在云上的上帝,俯视地球。上帝就在那里,芸芸众生都看不到它,但他们可以向上帝祈祷。
这些 KPTI 补丁将内核移到一个完全分离开来的地址空间,那样不仅运行中的进程看不见它,它甚至根本就不在那里。实际上,不应该需要这个,但英特尔芯片中存在的缺陷显然让内核访问保护机制可以被人以某种方式绕过。
这种分离的缺点在于,针对每次系统调用和来自硬件的每次中断,不断地在两个独立的地址空间之间来回切换,这从时间方面来看开销相当大。这种上下文切换不会瞬间发生,并迫使处理器倒出缓存数据,并从内存重新装入信息。这就增加了内核的开销,减慢了计算机的运行速度。
因此,你那搭载英特尔芯片的机器运行起来会变慢。

微信全文 http://ffff.im/BjVU
7854 次点击
所在节点    程序员
41 条回复
lzvezr
2018-01-04 08:21:08 +08:00
这么多年的牙膏一下子抽回去了?
7654
2018-01-04 08:21:28 +08:00
我在另一篇文章中看到是约 20%的性能下降,这里已经发展成 30%了
49gd
2018-01-04 08:24:55 +08:00
农企日常翻身
ionblue
2018-01-04 08:55:28 +08:00
当硬件出了 bug,弥补代价太大的时候该怎么办?
1. 拉同行下水
2. 不影响用户体验

华为,你把刀放下,这次没有说你。
o00o
2018-01-04 09:01:30 +08:00
WIT:Why me, should be FUCKINTEL
shutongxinq
2018-01-04 09:02:01 +08:00
@ItzhacLea 链接说 INVPCID Haswell 就完全支持了,是不是可以认为对大多数现役电脑,如果 kernel 用了 PCID 之类的防止把 TLB 刷没了,性能下降不大?
hhacker
2018-01-04 09:02:31 +08:00
FUCKWIT 笑喷
cheng123xp
2018-01-04 09:23:59 +08:00
谷歌的报告说 AMD 和 ARM 也有这个缺陷。
https://www.phoronix.com/scan.php?page=news_item&px=Google-CPU-Disclosure
loolac
2018-01-04 09:27:27 +08:00
就是说,我们花了钱,买了个虚假的性能提升?
wwhc
2018-01-04 09:38:04 +08:00
@cheng123xp

Meltdown 仅在 Intel cpu 上验证成功

https://meltdownattack.com/
jadeity
2018-01-04 09:50:02 +08:00
这是不是说当初就是以牺牲安全性换取性能的?
jedihy
2018-01-04 09:52:21 +08:00
AMD 有同样的问题
xuhaoyangx
2018-01-04 10:06:48 +08:00
@wwhc #30 只是 intel 能完成攻击
JackBlack2006
2018-01-04 10:10:42 +08:00
欧盟表示又能罚英特尔 AMDARM 一笔大钱了

ARM 表示日了 Brexit (滑稽)
JackBlack2006
2018-01-04 10:13:24 +08:00
AMD 方面似乎 Ryzen 系列安全,FX 系列中枪,再之前的羿龙翼龙系安全?
jjx
2018-01-04 10:14:44 +08:00
后端的噩梦啊, 辛辛苦苦的优化一个更新就没有了



https://www.zhihu.com/question/265012502

目前 phoronix 已对此进行了测试,IO 性能几乎下降了 50%,编译性能下降了接近 30%,postgresql 和 redis 也有差不多 20%的性能下跌,详细地址:Initial Benchmarks Of The Performance Impact Resulting From Linux's x86 Security Changes

作者:Allen Leung
链接: https://www.zhihu.com/question/265012502/answer/288199200
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
snakejia
2018-01-04 11:42:28 +08:00
这么搞会不会导致一波换机潮啊
panyuz
2018-01-04 11:53:22 +08:00
上个月刚买的机器
crabRunning
2018-01-04 15:17:02 +08:00
已经开始陆续收到各大云厂商的邮件通知了
aksoft
2018-01-04 15:59:54 +08:00
这意思是 你们新买的 i7 和我 3 年前的 i7 一个水平了。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/419831

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX