Linux內(nèi)核補(bǔ)丁AMD旁路轉(zhuǎn)換緩沖(TLB)錯(cuò)誤 |
發(fā)布時(shí)間: 2012/8/11 9:43:40 |
關(guān)于AMD的旁路轉(zhuǎn)換緩沖(TLB)錯(cuò)誤及其對(duì)四核皓龍芯片的影響上周已經(jīng)有了很多報(bào)道,據(jù)國(guó)外媒體報(bào)道,AMD在為64位Red Hat企業(yè)版Linux即Upgrade 4準(zhǔn)備一個(gè)內(nèi)核補(bǔ)丁程序。和AMD的BIOS(基本輸入輸出系統(tǒng))修復(fù)和微代碼更新不同,據(jù)悉這些處理過程降低了10-20%的性能,據(jù)說Linux補(bǔ)丁程序?qū)π阅艿膿p耗低于1%。然而,我們也了解到,用戶為了獲得該補(bǔ)丁程序必須簽署一份保密協(xié)議。
情況被證實(shí)之后,AMD在x86-64.org郵件列表上公布了該補(bǔ)丁程序的源代碼。然而,這些代碼以現(xiàn)狀為基準(zhǔn),不再進(jìn)行修改,同時(shí)再次警告,提示它不完全適用于主流系統(tǒng): 由于此補(bǔ)丁程序具有強(qiáng)大的入侵特性,而且受到影響的用戶數(shù)非常少(如果你的部分系統(tǒng)受到影響,就會(huì)了解這一點(diǎn)),我們不推薦在常規(guī)的Linux系統(tǒng)上使 用此補(bǔ)丁程序。此補(bǔ)丁不是為主流用戶而準(zhǔn)備的,也不是用于銷售的Linux產(chǎn)品!此補(bǔ)丁只接受過最小限度的功能性測(cè)試。每位用戶在使用前必須對(duì)其進(jìn)行評(píng) 估,以確保其能符合必要的質(zhì)量標(biāo)準(zhǔn)。 在同一郵件列表上的一篇以前發(fā)表的文章中,AMD的員工Elsie Wahlig也提出警告,該補(bǔ)丁程序"不推薦應(yīng)用于上游產(chǎn)品"。Wahlig提到,該補(bǔ)丁程序是由AMD的操作系統(tǒng)研究中心小組為L(zhǎng)inux 2.6.23.8而開發(fā)的,并提供了一份詳細(xì)的錯(cuò)誤描述: 對(duì)錯(cuò)誤298的描述如下:"處理器操作可能不是原子性的,在二級(jí)緩存中改變頁(yè)面轉(zhuǎn)換表項(xiàng)目中從0b到1b地址的被訪問過的或臟字節(jié)。在一個(gè)細(xì)小的時(shí)間間隔 內(nèi),在修改過的復(fù)制數(shù)據(jù)返回二級(jí)緩存之前,其他緩存操作可能引起失效的頁(yè)面轉(zhuǎn)換表項(xiàng)目被安裝在三級(jí)緩存中。另外,如果在該時(shí)間間隔期間檢測(cè)到該緩存行,處 理器不會(huì)對(duì)該被訪問過的或臟字節(jié),以及可能發(fā)生錯(cuò)誤的數(shù)據(jù)進(jìn)行無(wú)關(guān)的緩存操作。系統(tǒng)可能會(huì)通過一次機(jī)器檢測(cè)事件,報(bào)告發(fā)生了一次三級(jí)緩存協(xié)議錯(cuò)誤。在這種 情況下,MC4狀態(tài)寄存器(MSR 0000_0410)的內(nèi)容將會(huì)是B2000000_000B0C0F或BA000000_000B0C0F。MC4地址寄存器(MSR 0000_0412)的內(nèi)容將會(huì)是26h。" Wahlig對(duì)Linux補(bǔ)丁程序的工作過程作了描述,該補(bǔ)丁程序也繞過了BIOS工作區(qū)并仿真"被訪問過的和臟字節(jié)",以阻止錯(cuò)誤數(shù)據(jù)建立文件頭: 內(nèi)核補(bǔ)丁解決方案取決于二級(jí)緩存遷出問題的根本原因。只有當(dāng)TLB需要在一個(gè)頁(yè)表項(xiàng)目中設(shè)置一個(gè)A或D位時(shí),問題才暴露。如果TLB永遠(yuǎn)不需要設(shè)置一個(gè)A 或D位,錯(cuò)誤則不會(huì)出現(xiàn)。通過使用當(dāng)前的可寫位對(duì)A和D位進(jìn)行仿真,補(bǔ)丁程序?qū)⒋_保經(jīng)常對(duì)實(shí)際的A和D位進(jìn)行預(yù)設(shè)。當(dāng)首次訪問一個(gè)未對(duì)仿真A位進(jìn)行設(shè)置的 頁(yè)面時(shí),并且當(dāng)首次寫訪問一個(gè)未對(duì)仿真D位進(jìn)行設(shè)置的可寫頁(yè)面時(shí),通過對(duì)一個(gè)錯(cuò)誤頁(yè)面進(jìn)行強(qiáng)制而完成該處理。仿真A和D位存儲(chǔ)在位寄存器中,操作系統(tǒng)通常 可以在頁(yè)表項(xiàng)目中取得它。 AMD以比最初預(yù)期更為委婉的說法,停止發(fā)行該補(bǔ)丁程序,但公司并沒有給所有Linux用戶發(fā)放"通行證",用來(lái)避免BIOS修復(fù)程序帶來(lái)的性能損失。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |