免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7811 | 回复: 9

关于AMD TLB bug [复制链接]

论坛徽章:
0
发表于 2008-03-21 23:34 |显示全部楼层
最近学校要采购服务器,突然想到可以尝试一下AMD的基于巴塞罗那的2300系列服务器。
当我联系IBM/HP/DELL时得到了令人震惊的回复,自从去年11月分以来,AMD就停止了巴塞罗那服务器端芯片的出货。
当我向AMD北京求证新的步进B3何时上市时得到的答复是:“我们的处理器不存在这个问题”。
当时差点没有晕倒。
最近有消息说AMD已经修正对应TLB的bug,并且最快在4月初有服务器上市。
先看一下Intel最近一年的股价:

跟老冤家比,AMD最近一年的股价简直惨不忍睹:


带着满腹牢骚,我开始上网搜索:
于是有了
http://vip.amd.com/us-en/assets/ ... tech_docs/41322.pdf
298 L2 Eviction May Occur During Processor Operation To Set
Accessed or Dirty Bit
Description
The processor operation to change the accessed or dirty bits of a page translation table entry in the L2
from 0b to 1b may not be atomic. A small window of time exists where other cached operations may
cause the stale page translation table entry to be installed in the L3 before the modified copy is
returned to the L2.
In addition, if a probe for this cache line occurs during this window of time, the processor may not set
the accessed or dirty bit and may corrupt data for an unrelated cached operation.
Potential Effect on System
One or more of the following events may occur:
• Machine check for an L3 protocol error. The MC4 status register (MSR 0000_0410) will be
equal to B2000000_000B0C0F or BA000000_000B0C0F. The MC4 address register (MSR
0000_0412) will be equal to 26h.
• Loss of coherency on a cache line containing a page translation table entry.
• Data corruption.
Suggested Workaround
BIOS should set MSR C001_0015h[3] (HWCR[TlbCacheDis]) to 1b and MSR C001_1023h[1] to 1b.
In a multiprocessor platform, the workaround above should be applied to all processors regardless of
silicon revision when an affected processor is present.
Fix Planned
Yes

从description来说,的确是很严重的bug,

http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=3260&p=2
有大致的解释,大概的意思:
处理器改变L2中页表项A/D位的操作不是一个原子操作.
当处理器修改该页A/D为过程中,
cache coherency算法可能会引发该项被放入L3(没记错的话AMD采用的应该是牺牲者cache,L2与L3的内容是互斥的).
这就会导致当处理器改变完A/D位时,
在L2/L3中各自由一个不同的页表项(A/D位不同).
当另外的处理器命中L3时,
原始的页表项会进入L2,
由于采用牺牲者cache,
此时该处理器认并不知道其它处理器还有该块页表项。
当该处理器再次修改页表项的时候,
问题就会很严重.

MMU是CPU最核心的部件,直接影响CPU的性能。
有媒体报道了AMD指出性能会受损的硬件:
1) Windows Vista 64-bit running SPEC CPU 2006
2) Xen Hypervisor running Windows XP and an unknown configuration of applications [可以联想AMD巴塞罗那处理器使用的硬件内存虚拟化技术NPT]

不过从Suggested Workaround来说貌似还有回转的余地,如果真的是这样的话,
为什么要停止出货了,处理器存在几百个非致命bug也是很长见的。

看来关键在于这两个MSR,
1 MSR C001_0015h[3] (HWCR[TlbCacheDis]) : 从名字就可以推断其作用,一搜吓一跳:
TlbCacheDis: cacheable memory disable. Read-write. 1=Disable performance improvement that
assumes that the PML4, PDP, PDE and PTE entries are in cacheable memory. Operating systems that
maintain page tables in uncacheable memory (UC memory type) must set the TlbCacheDis bit to
insure proper operation.

大概意思就是说处理器认为所有的页表都保存在不可缓冲内存范围内.显然当TLB miss的时候处理器不会从各级cache而是从内存中取出相应的页表项.
相当于TLB不可以使用cache,这对频繁内存操作的应用性能的损失是致命的。国外已经有相关的评测。
2 MSR C001_1023h: 这个破烂MSR,即使在最新的 《BIOS and Kernel Developer’s Guide (BKDG) For AMD Family 10h Processors》中也没有找到定义,不清楚到底做了什么事情。

大致搞清楚来龙去脉以后,有点疑问:
这个关键的bug,值得修正了将近半年吗?
据说298这个bug最初并未写入errata,
可能是在修正的过程中发现了新的致命bug?
由于巴塞罗那支持Nested paging,ASID
硬件上采用了复杂寻址层次,
联想到此次的TLB问题以及AMD给出的Xen性能差异,
个人认为可能NPT+TLB也是导致这个Bug较难修复的一个原因。



有点感想:
技术角度:
1 设计处理器如同设计程序一样,随着复杂度的提升,bug的数量也随之上升,面对处理器几百个errata有时真是让人无语。
2 功能的增加必然带来测试的复杂,在设计的时候留有余地,在出现问题的时候才好修补。
3 联想到我们龙芯刚刚喊出的五年内颠覆CPU格局,后背不断出冷汗
其它:
对于AMD真是有点很铁不成钢,我偶尔会对比AMD与Intel处理器的细微差别,发现很多方面AMD都是很有创新的。
在CPU这块技术含量极高的商业领域,面临残酷的竞争,致命的失误可能葬送公司的前途,记得去年下半年关于AMD要被收购的传言四起。
如果巴塞罗那可以按逾期顺利出货,AMD利用其性价比和诸多特性可以追赶甚至部分特性上超越Intel.
但是现在,在桌面领域,只能给消费者提供因为patch而性能大大受损的phenom.服务器领域面临使用双核与Intel四核竞争的极度窘境。
AMD只能靠价格维持生存,但是这种生存不会长久。
等修正版巴塞罗那全面出货,又要面临与Intel下一代45nm处理器的竞争的处境,艰难程度可想而知。
不过对于AMD也有好消息,也许三核在解决次品率和桌面市场可能会大有做为。


今天打了不下20个电话缺一无所获,发点牢骚,有兴趣可以一起讨论,没兴趣就当休闲一下。

[ 本帖最后由 crspo 于 2008-3-21 23:38 编辑 ]

论坛徽章:
0
发表于 2008-03-22 09:26 |显示全部楼层
原帖由 crspo 于 2008-3-21 23:34 发表
最近学校要采购服务器,突然想到可以尝试一下AMD的基于巴塞罗那的2300系列服务器。
当我联系IBM/HP/DELL时得到了令人震惊的回复,自从去年11月分以来,AMD就停止了巴塞罗那服务器端芯片的出货。
当我向AMD北京 ...


不论Intel还是AMD, 硬件的bug是很难避免的.

不过AMD技术实力还是弱了一点, 去年在AMD培训巴塞罗拿的时候, 吹得很厉害, 结果现在还没见什么大的动作.

论坛徽章:
0
发表于 2008-03-22 11:33 |显示全部楼层
原帖由 Solaris12 于 2008-3-22 09:26 发表


不论Intel还是AMD, 硬件的bug是很难避免的.

不过AMD技术实力还是弱了一点, 去年在AMD培训巴塞罗拿的时候, 吹得很厉害, 结果现在还没见什么大的动作.

的确,我已经向AMD的工程师求证。新phenmon会在4月初上市,并且TLB bug不会影响到NPT。
TLB bug has been fixed. AMD will release Phenom from early next month. You probably be able to find one in China market. Might be expensive though.

TLB errata does impact the performance, in general; but not related to nested paging specifically.

论坛徽章:
0
发表于 2008-03-22 12:26 |显示全部楼层
原帖由 crspo 于 2008-3-22 11:33 发表

的确,我已经向AMD的工程师求证。新phenmon会在4月初上市,并且TLB bug不会影响到NPT。
TLB bug has been fixed. AMD will release Phenom from early next month. You probably be able to find one in Chi ...

hoho,intel动作确实慢,EPT不早推出来,用户都向NPT转了

论坛徽章:
0
发表于 2008-03-22 12:32 |显示全部楼层
原帖由 crspo 于 2008-3-21 23:34 发表
最近学校要采购服务器,突然想到可以尝试一下AMD的基于巴塞罗那的2300系列服务器。
当我联系IBM/HP/DELL时得到了令人震惊的回复,自从去年11月分以来,AMD就停止了巴塞罗那服务器端芯片的出货。
当我向AMD北京 ...

套用我老大的一句话“以前我编程,从来没想过CPU、主板、BIOS有bug。现在遇到调不出来的bug,就要看看是不是硬件的问题了……”
找到硬件,特别是CPU的BUG大大有赏的。曾经我就以为自己找到一个CPU的bug,发现某条指令执行的效果和spec说的不一样,狂欢喜中 …… 后来发现还是自己的bug

论坛徽章:
0
发表于 2008-03-22 12:38 |显示全部楼层
不过对于AMD也有好消息,也许三核在解决次品率和桌面市场可能会大有做为。

三核,哈哈哈,AMD工艺不过关,四核次品率高,就disable一个废掉的核当三核卖

论坛徽章:
0
发表于 2008-03-22 13:01 |显示全部楼层
原帖由 zx_wing 于 2008-3-22 12:26 发表

hoho,intel动作确实慢,EPT不早推出来,用户都向NPT转了

是呀,虽然AMD很早就提出了NPT,并写入了spec但是最后推向市场的事件却和Intel的EPT差不多

论坛徽章:
0
发表于 2008-03-22 16:11 |显示全部楼层
原帖由 zx_wing 于 2008-3-22 12:32 发表

套用我老大的一句话“以前我编程,从来没想过CPU、主板、BIOS有bug。现在遇到调不出来的bug,就要看看是不是硬件的问题了……”
找到硬件,特别是CPU的BUG大大有赏的。曾经我就以为自己找到一个CPU的bug,发 ...



深有体会.

去年的时候, 有个bug我说是硬件问题, 老板就举出以前认为是硬件问题但后来证明不是的例子, 还问我能真的确定吗? 真的很头疼啊.

论坛徽章:
6
CU大牛徽章
日期:2013-03-14 14:14:08CU大牛徽章
日期:2013-03-14 14:14:26CU大牛徽章
日期:2013-03-14 14:14:29处女座
日期:2014-04-21 11:51:59辰龙
日期:2014-05-12 09:15:10NBA常规赛纪念章
日期:2015-05-04 22:32:03
发表于 2012-03-29 17:10 |显示全部楼层
crspo 发表于 2008-03-21 23:34
最近学校要采购服务器,突然想到可以尝试一下AMD的基于巴塞罗那的2300系列服务器。
当我联系IBM/HP/DELL时 ...




还有这么严重的问题啊,那现在天天嚷嚷的推土机啥的,不会也有这样那样的bug吧?

论坛徽章:
6
CU大牛徽章
日期:2013-03-14 14:14:08CU大牛徽章
日期:2013-03-14 14:14:26CU大牛徽章
日期:2013-03-14 14:14:29处女座
日期:2014-04-21 11:51:59辰龙
日期:2014-05-12 09:15:10NBA常规赛纪念章
日期:2015-05-04 22:32:03
发表于 2012-03-29 17:12 |显示全部楼层
crspo 发表于 2008-03-21 23:34
最近学校要采购服务器,突然想到可以尝试一下AMD的基于巴塞罗那的2300系列服务器。
当我联系IBM/HP/DELL时 ...


那现在嚷嚷厉害的推土机没有这个问题吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时8.5折

【架构革新 高效可控】2020年6月4日~6日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP