首頁 > 文章 > 經(jīng)濟(jì) > 產(chǎn)業(yè)研究

龍芯完成”從CPU到系統(tǒng)”全鏈條虛擬機產(chǎn)品自主研制

高翔 · 2019-04-25 · 來源:龍芯中科
關(guān)注龍芯 收藏( 評論() 字體: / /

  

龍芯KVM虛擬機產(chǎn)品解決方案發(fā)布

 

  龍芯公司于2019年4月正式發(fā)布了基于龍芯3B3000 CPU的KVM虛擬機產(chǎn)品解決方案,可以支持全功能的虛擬化云主機系統(tǒng),支持以Spice協(xié)議和QXL虛擬圖形為基礎(chǔ)的云桌面應(yīng)用,支持Openstack等主流云計算環(huán)境。這是中國IT企業(yè)首次完成”從CPU到系統(tǒng)”全鏈條虛擬機產(chǎn)品的自主研制,也使得龍芯CPU生態(tài)系統(tǒng)具備了支撐完整云計算環(huán)境的應(yīng)用能力。

  KVM虛擬機作為云計算環(huán)境的關(guān)鍵組件,是信息技術(shù)產(chǎn)業(yè)領(lǐng)域典型的”硬科技”產(chǎn)品,其研發(fā)跨CPU芯片、Linux內(nèi)核、云計算等復(fù)雜技術(shù)領(lǐng)域,涵蓋了CPU芯片的虛擬化設(shè)計、操作系統(tǒng)內(nèi)核的系統(tǒng)級虛擬化支持、虛擬機模擬執(zhí)行環(huán)境、云計算應(yīng)用支撐環(huán)境等眾多核心技術(shù)。本次發(fā)布的KVM虛擬機產(chǎn)品解決方案包括下面五方面的技術(shù)內(nèi)涵:

  在CPU芯片方面,龍芯3B3000 CPU在處理器執(zhí)行模式、流水線執(zhí)行環(huán)境、TLB存儲管理、中斷與異常機制、虛擬機輔助機制和時鐘系統(tǒng)方面實現(xiàn)了對虛擬化的硬件支持,可在多個層次和各類場景下顯著提升虛擬化的效率。

  在Linux內(nèi)核方面,以Linux內(nèi)核作為基礎(chǔ)環(huán)境,實現(xiàn)了標(biāo)準(zhǔn)的KVM虛擬化模塊,完成了對CPU虛擬化、存儲虛擬化和IO虛擬化等的支持。以Spec CPU2000為代表的典型應(yīng)用基本都可以達(dá)到95%以上的虛擬化執(zhí)行效率。

  在QEMU虛擬機模擬環(huán)境方面,實現(xiàn)了對龍芯3號計算機系統(tǒng)架構(gòu)的標(biāo)準(zhǔn)化模擬,支持虛擬PCI總線動態(tài)枚舉、虛擬USB動態(tài)掃描,實現(xiàn)了基于VirtIO的IO虛擬化支持,可以高效支持虛擬網(wǎng)絡(luò)、虛擬顯示等功能。

  在云桌面應(yīng)用環(huán)境(VDI)方面,完成了Spice協(xié)議在龍芯系統(tǒng)上的優(yōu)化適配,完成了QXL虛擬圖形的開發(fā)適配,實現(xiàn)了USB重定向等功能,對Remote-Viewer、OpenSSL等虛擬化組件進(jìn)行了深度優(yōu)化,具備完備支撐云桌面辦公環(huán)境的應(yīng)用能力。

  在云計算應(yīng)用環(huán)境方面,完成了Libvirt、VirtManager等基礎(chǔ)運維管控組件的適配開發(fā),實現(xiàn)了虛擬機動態(tài)遷移、動態(tài)資源調(diào)整,故障自動恢復(fù)等功能開發(fā),完成了Openstack等大型云計算應(yīng)用環(huán)境的移植和驗證。

  

  圖1 啟動KVM虛擬機

  

  圖2 KVM云主機環(huán)境運行docker容器

  

  圖3 虛擬桌面(VDI)-在線視頻播放

  

圖4 Openstack系統(tǒng)管理

 

  

  圖5 Openstack虛擬機控制臺

  秉持“開源開放、合作共贏”的生態(tài)建設(shè)宗旨,龍芯KVM虛擬機產(chǎn)品解決方案將通過“源碼開放、免費下載”的形式對外發(fā)布,云廠商、操作系統(tǒng)廠商等企業(yè)機構(gòu)和個人愛好者都可以通過龍芯開源社區(qū)網(wǎng)站(http://www.loongnix.cn)下載龍芯KVM虛擬機的產(chǎn)品、源碼及各類開發(fā)和使用文檔。

  龍芯KVM虛擬機的發(fā)布對完善國產(chǎn)CPU生態(tài)系統(tǒng)、推動自主可控云計算產(chǎn)業(yè)健康發(fā)展、培養(yǎng)云計算核心技術(shù)團(tuán)隊等方面都有著重要意義。以”堅持自主研發(fā)、掌握核心技術(shù)”為價值觀的龍芯公司期待著與產(chǎn)業(yè)鏈的合作伙伴們攜手并進(jìn),共創(chuàng)國產(chǎn)生態(tài)系統(tǒng)的美好未來。

  

龍芯KVM虛擬機研發(fā)紀(jì)實

 

  KVM虛擬機作為云計算環(huán)境的基礎(chǔ)支撐組件,是信息技術(shù)產(chǎn)業(yè)領(lǐng)域典型的”硬科技”產(chǎn)品。為了滿足自主信息化對云計算日益迫切的應(yīng)用需求,龍芯公司于2019年第二季度發(fā)布了龍芯KVM虛擬機產(chǎn)品。這是國內(nèi)技術(shù)團(tuán)隊首次完成”從CPU到系統(tǒng)”全鏈條虛擬機產(chǎn)品的自主研制。

  KVM虛擬機的研發(fā)跨CPU芯片、操作系統(tǒng)內(nèi)核、云計算等多個復(fù)雜技術(shù)領(lǐng)域,涵蓋了CPU芯片的虛擬化設(shè)計、操作系統(tǒng)內(nèi)核的系統(tǒng)級虛擬化支持、虛擬機模擬執(zhí)行環(huán)境、云計算應(yīng)用支撐環(huán)境等眾多核心技術(shù)。從國際上看,僅有Intel、ARM等幾家國外公司掌握了“從芯片到系統(tǒng)”的完整KVM虛擬機核心研發(fā)技術(shù),這也導(dǎo)致雖然中國的云計算產(chǎn)業(yè)在應(yīng)用規(guī)模等指標(biāo)上已經(jīng)達(dá)到國際先進(jìn)水平,然而在虛擬機這一關(guān)鍵核心技術(shù)上,國內(nèi)云廠商無一例外地深度依賴國外虛擬機產(chǎn)品和技術(shù)。龍芯KVM虛擬機系統(tǒng)的發(fā)布對完善國產(chǎn)CPU技術(shù)生態(tài)、推動自主可控云計算產(chǎn)業(yè)健康發(fā)展、培養(yǎng)云計算核心技術(shù)團(tuán)隊等方面都有著重要意義。

  1

  歷史積累

  龍芯虛擬化設(shè)計可以追溯到十多年前的龍芯2號研制時期,我們需要一款能夠快速進(jìn)行操作系統(tǒng)調(diào)試的虛擬驗證環(huán)境。當(dāng)時是2003年,后來著名的QEMU模擬器還沒有面世,我的師兄張福新就找來了一個90年代斯坦福大學(xué)發(fā)布的SimOS模擬器。斯坦福大學(xué)是MIPS CPU的誕生地,這個SimOS天生支持MIPS指令集,通過一些功能級的開發(fā)改造,我們很快就把龍芯2號的Linux系統(tǒng)在SimOS上跑了起來。這個SimOS可以算是最早的龍芯虛擬機系統(tǒng)。我在讀博士期間的2004年到2007年,又把龍芯2號的微結(jié)構(gòu)時序模型和龍芯3號的多核架構(gòu)支持加入到SimOS中。這個模擬器被用于龍芯CPU微結(jié)構(gòu)設(shè)計、性能分析、操作系統(tǒng)開發(fā)和硅后驗證,發(fā)揮了重要作用。后來2007年到2013年,龍芯系統(tǒng)組的歷屆博士生劉奇、蔡萬偉、臺運方等基于龍芯系統(tǒng)和模擬器環(huán)境,在CPU虛擬化、內(nèi)存虛擬化和IO虛擬化等方面進(jìn)行了探索性研究,期間的論文和專利成果對龍芯KVM虛擬機的產(chǎn)品研制產(chǎn)生了積極影響。

  2

  CPU的硬件虛擬化支持

  到了2013年,云計算應(yīng)用發(fā)展使得對國產(chǎn)CPU虛擬化的需求日益強烈,龍芯公司決定在龍芯3A3000中首次加入對硬件虛擬化的支持。由于虛擬機的復(fù)雜性,為確保一次成功,公司總裁胡老師提出了“簡化硬件和結(jié)構(gòu)的復(fù)雜度,通過系統(tǒng)軟硬件協(xié)同優(yōu)化來提升效率”的虛擬化設(shè)計方針。從后來的項目發(fā)展來看,這一指導(dǎo)方針得到了充分貫徹并取得了預(yù)計效果。由于簡化CPU硬件結(jié)構(gòu),3A3000的CPU硬件沒有出現(xiàn)顛覆性的設(shè)計缺陷,CPU流片成功后就能研制和發(fā)布虛擬機。同時,軟硬件協(xié)同優(yōu)化的策略也給系統(tǒng)優(yōu)化留下了空間。國內(nèi)現(xiàn)在一講創(chuàng)新就喜歡講超越,然而在計算機領(lǐng)域,復(fù)雜的核心技術(shù)只能一步一步演進(jìn)出來。一位國內(nèi)同仁也跟我表達(dá)過類似觀點,研發(fā)工程積累沒有到達(dá)一定的程度前,盲目創(chuàng)新的結(jié)局只會是跌倒重來。

  3

  系統(tǒng)設(shè)計方案

  從2017年初,龍芯3A3000完成了芯片產(chǎn)品化,開始啟動KVM虛擬機軟件系統(tǒng)的研制。考慮到KVM虛擬機的系統(tǒng)復(fù)雜性,我們采用了按“子系統(tǒng)-模塊-場景-路徑進(jìn)行分解"的設(shè)計思路。即將整個KVM虛擬機分為CPU指令執(zhí)行環(huán)境、存儲管理、時鐘、中斷、IO和配套環(huán)境等多個子系統(tǒng),子系統(tǒng)按模塊分解,模塊按照場景進(jìn)行組合,場景又按照執(zhí)行路徑進(jìn)行具體化設(shè)計。當(dāng)分解到路徑時,設(shè)計和開發(fā)工作就已經(jīng)非常明確了。由于子系統(tǒng)、模塊、場景、路徑之間是彼此高度耦合、相互交叉依賴,為了在設(shè)計階段就將各種困難問題充分暴露,并針對各類復(fù)雜邊界情況制定完備的設(shè)計方案,我們?yōu)槊總€場景或路徑建立了項目管理平臺Redmine的對應(yīng)任務(wù),每個任務(wù)指定有一個硬件負(fù)責(zé)人和一個軟件負(fù)責(zé)人,硬件負(fù)責(zé)人解釋CPU的虛擬化行為,軟件負(fù)責(zé)人則負(fù)責(zé)確定軟件的設(shè)計方案。通過充分的討論和溝通,逐步將虛擬化每個場景每個路徑所應(yīng)具備的功能確定下來,所需要考慮的邊界條件和復(fù)雜的處理場景也都逐步清晰。后來統(tǒng)計,在長達(dá)五個月的設(shè)計過程中,總共建立了幾十個任務(wù),每個任務(wù)中包含的設(shè)計文檔都經(jīng)過多個版本,不斷修正設(shè)計中的疏漏和不足之處。經(jīng)過這“反復(fù)迭代、多輪修正”的設(shè)計過程,項目組對虛擬化系統(tǒng)有了全面和深入的把握,對其中的風(fēng)險和問題進(jìn)行了充分的評估,設(shè)計方案的完備度得到一致確認(rèn),可以進(jìn)入到編碼開發(fā)階段。

  4

  編碼與開發(fā)

  謀定而后動,由于有前期充分的設(shè)計準(zhǔn)備,編碼開發(fā)工作變得如同普通的應(yīng)用軟件編程。大約兩個月時間,基本的虛擬化支持代碼開發(fā)完畢,可以進(jìn)入調(diào)試和驗證階段。這時,我們采用了直接啟動Linux系統(tǒng)的聯(lián)調(diào)方案,跳過了單元測試的環(huán)節(jié),這里邊的考慮有三。一是KVM的單元測試環(huán)境移植和搭建需要耗費時間和精力,而目前階段我們應(yīng)該盡快的迭代出產(chǎn)品;二是因為我們團(tuán)隊在內(nèi)核方面有很深的積累,直接啟動Linux進(jìn)行虛擬機調(diào)試,即便在內(nèi)核層面出現(xiàn)復(fù)雜問題,按我們的積累和經(jīng)驗也能hold住;三是啟動Linux系統(tǒng)可以直接對接虛擬化場景,測試會更加具有針對性和復(fù)雜性。按照”虛擬機啟動到哪里,驗證和測試工作就跟進(jìn)到哪里”的實施策略,項目進(jìn)展迅速,期間解決了一些硬件bug和編碼實現(xiàn)中的問題,到2018年初,我們已經(jīng)可以完成虛擬機上Linux系統(tǒng)啟動,但是就產(chǎn)品而言,整個項目最艱難的時刻還遠(yuǎn)遠(yuǎn)未到,后面還有七個難關(guān)等著我們。

  第一關(guān) 解決Guest態(tài)漏執(zhí)行問題

  在2018年春節(jié)之后,我們遇到了一個偶發(fā)的系統(tǒng)故障,經(jīng)常是測試一兩天才冒出一個sigbus異常,錯誤現(xiàn)場留給我們的線索信息極少。大約有一個月左右的時間,我們的工作陷入了僵局。在我近二十年的系統(tǒng)研發(fā)工作中,經(jīng)常遇到各種復(fù)雜的系統(tǒng)問題。問題經(jīng)歷多了,喜歡將解決復(fù)雜系統(tǒng)問題和警察破案相比較。我非常欣賞一位優(yōu)秀刑警總結(jié)的破案經(jīng)驗,“破案時不要簡單根據(jù)已有線索進(jìn)行推斷,而是要根據(jù)大膽的假定尋找新的線索”。程序員找系統(tǒng)bug和警察破案的工作是相似的。出現(xiàn)系統(tǒng)bug時,現(xiàn)場的信息和線索非常有限,如果只根據(jù)有限的線索進(jìn)行邏輯推斷,工作就會進(jìn)入死胡同。此時,我們根據(jù)sigbus現(xiàn)場出現(xiàn)的有限信息,大膽地提出一個假定,即問題源于CPU在虛擬化模式下漏了一部分指令到普通模式下執(zhí)行。在這個假設(shè)前提下,張爽爽和李星在內(nèi)核中設(shè)計了相應(yīng)的實驗方案,一步一步找到新的線索,逐步驗證了我們的猜想。最終線索聚焦到一個很小的執(zhí)行場景,在負(fù)責(zé)CPU結(jié)構(gòu)設(shè)計的吳瑞陽幫助下,確定問題機理是虛擬CPU在特定場景下有兩拍的窗口間隙處于競爭不穩(wěn)態(tài),需要軟件對執(zhí)行模式進(jìn)行控制?;饲昂?個多月時間,解決完這個問題后,Spec CPU2006這樣的大型測試軟件都可以正常運行通過。

  第二關(guān) 解決云桌面界面卡頓

  進(jìn)入2018年的夏天,外界用戶對龍芯虛擬化的需求已日益迫切。那段時間每周我們都接到大量對龍芯KVM虛擬機的咨詢、催促、探尋合作的電話和郵件。通過訪問合作的云廠商,我們了解到用戶希望采用虛擬機云桌面(VDI)的需求。針對這一要求,我們完成了云桌面環(huán)境關(guān)鍵組件Spice協(xié)議和QXL圖形驅(qū)動的適配和優(yōu)化,可以啟動云桌面環(huán)境進(jìn)行日常辦公和娛樂,但在系統(tǒng)壓力測試中,卻又出現(xiàn)了一兩天才偶發(fā)的界面卡頓問題。這個卡頓問題跟Spice/QXL組件相關(guān),包括內(nèi)核QXL驅(qū)動、VirtIO驅(qū)動,X系統(tǒng)的QXL用戶態(tài)驅(qū)動,Remote-viewer等軟件和模塊,據(jù)我們統(tǒng)計,涉及到高達(dá)20多萬行的源代碼。我們需要在短時間內(nèi)吃透這20多萬行從未摸過的代碼,并解決卡頓問題,這對項目團(tuán)隊是一個巨大的考驗。好在龍芯系統(tǒng)研發(fā)部雖然規(guī)模不大,但各方面的人才儲備比較全面,特別是我們有國內(nèi)最好的圖形驅(qū)動團(tuán)隊。雖然Spice/QXL是一個我們未曾研究過的虛擬化圖形驅(qū)動,但我們有過多款龍芯集顯GPU圖形驅(qū)動的開發(fā)經(jīng)驗。在技術(shù)原理上,QXL跟集顯GPU是相通的。于是從操作系統(tǒng)圖形組臨時調(diào)來王洪虎和朱琛進(jìn)行攻關(guān),他倆很快就進(jìn)入了狀態(tài)。經(jīng)過一個月的代碼分析,我們就掌握了QXL的系統(tǒng)架構(gòu)并摸清了問題線索,根據(jù)界面卡頓的現(xiàn)場反向分析,穩(wěn)步推進(jìn),最終確定到卡頓原因為在某個復(fù)雜場景下Spice協(xié)議傳輸中丟失了一次數(shù)據(jù)包。機理清楚后,解決bug就順理成章,云桌面環(huán)境的卡頓現(xiàn)象完全消失。

  第三關(guān) 解決偶發(fā)的系統(tǒng)崩潰

  解決云桌面卡頓后,我們將KVM虛擬機交給了測試組進(jìn)行更大規(guī)模和壓力的系統(tǒng)測試,隨之發(fā)現(xiàn)了偶發(fā)系統(tǒng)崩潰或者死機。從事系統(tǒng)研發(fā)的都知道,系統(tǒng)級的錯誤傳播鏈極長,涉及到的軟件源碼量可達(dá)到上億行之多,特別是排查錯誤時還需要經(jīng)常進(jìn)入自己不熟悉的領(lǐng)域,例如內(nèi)核專家往往不甚了解systemd的運行機理,解決這類偶發(fā)的系統(tǒng)錯誤是最頭疼的。經(jīng)過長達(dá)兩個月對錯誤現(xiàn)場的反復(fù)實驗和分析,到了2018年9月的時候,我們推測是TLB的處理時發(fā)生了異常,導(dǎo)致訪存錯誤。但由于錯誤出現(xiàn)時經(jīng)過了多次傳播,錯誤現(xiàn)場的線索極其有限,我們需要設(shè)計一個當(dāng)錯誤發(fā)生時能夠精確推斷出錯誤機理的測試用例。這時我想到了lmbench測試集中有個測量內(nèi)存延遲的用例,這個用例中相鄰訪存指令的數(shù)據(jù)結(jié)果是緊密依賴的,當(dāng)出現(xiàn)錯誤時,可以立刻判斷出錯誤的上一級來源。果然,用這個用例測試1個小時就能規(guī)律復(fù)現(xiàn)一次錯誤,確實是某次load操作時取到了一個錯誤的數(shù)據(jù),但又怎么繼續(xù)判斷這個錯誤數(shù)據(jù)的來源呢?李星提出一個方案,將測試程序地址鏈接到一個特殊區(qū)域,這樣可以很準(zhǔn)確的用EJTAG斷住錯誤現(xiàn)場。斷住錯誤現(xiàn)場是一個很重要的突破,沒有現(xiàn)場就只能進(jìn)行缺乏直接依據(jù)的猜測,而有了斷點現(xiàn)場,工作就變成了“通過查勘錯誤現(xiàn)場進(jìn)行有根有據(jù)的分析”。隨后我們和負(fù)責(zé)CPU設(shè)計的汪文祥和吳瑞陽一起分析錯誤現(xiàn)場,反復(fù)查驗TLB中的數(shù)據(jù),對比錯誤程序的反匯編,最終確認(rèn)錯誤來源于CPU在流水線切換時采用了錯誤的地址進(jìn)行了訪存。隨后我們對流水線的切換模式進(jìn)行了控制,這一偶發(fā)的系統(tǒng)崩潰問題經(jīng)過前后近三個月的攻關(guān),得到了機理清楚的徹底解決。

  第四關(guān) 解決時鐘子系統(tǒng)故障

  隨著測試工作的進(jìn)一步深入,在2018年9月又出現(xiàn)了系統(tǒng)的RCU報警。經(jīng)過分析排查,確認(rèn)RCU故障不是第一錯誤現(xiàn)場,而是因為虛擬機的時鐘中斷偶爾間隔過長誘發(fā)。在虛擬機發(fā)生中斷、遷移、異常、暫停等行為時,需要對虛擬機的時鐘進(jìn)行校準(zhǔn)和補償。由于進(jìn)出虛擬機模式的時鐘校準(zhǔn)、補償和管理系統(tǒng)異常復(fù)雜,我們自然而然的把主攻方向?qū)?zhǔn)了虛擬機時鐘補償和校準(zhǔn)系統(tǒng),猜測可能是這里出了問題。而虛擬機的時鐘系統(tǒng)調(diào)試又是一個特殊困難的挑戰(zhàn),因為常規(guī)的斷點調(diào)試等手段本身會導(dǎo)致虛擬機時鐘子系統(tǒng)異常,這樣錯誤的浮現(xiàn)幾率、現(xiàn)象和觸發(fā)條件都會發(fā)生變化。經(jīng)過1個月的攻關(guān),我們把整個時鐘補償和校準(zhǔn)系統(tǒng)捋了個透,發(fā)現(xiàn)并解決了一些時鐘子系統(tǒng)的其他問題,但這些跟時鐘中斷間隔過長問題無關(guān),工作暫時陷入了謎團(tuán)。此時,龍芯組研究生王俊儒提出一個設(shè)想,可能是在處理特殊異常中更新Cause寄存器時丟失了時鐘中斷,這個錯誤機理清晰明了,但卻恰恰在我們主攻方向以外被忽視的部分。果然是山重水復(fù)疑無路,柳暗花明又一村。解決完這個問題之后,系統(tǒng)的可用性上了一個大臺階。

  第五關(guān) TLB性能優(yōu)化

  在系統(tǒng)級測試工作開展的同時,性能分析工作也在同步進(jìn)行。針對Spec CPU2000這樣的典型測試集,我們發(fā)現(xiàn)個別程序的虛擬化性能效率不到30%。經(jīng)過深入分析,判斷是因為龍芯3A3000采用的單級TLB模式引起,在特殊應(yīng)用模式下,TLB處理效率很低。根據(jù)這個性能機理,研究生王俊儒和鄧向設(shè)計了一個軟件優(yōu)化方案大幅度提升了這類應(yīng)用的性能。新加入龍芯的毛碧波,有多年的產(chǎn)品研發(fā)經(jīng)驗,進(jìn)一步完善了這個設(shè)計,并解決實現(xiàn)中的一些關(guān)鍵bug。到了2018年年底,在龍芯3A3000虛擬機上,Spec CPU2000等大型應(yīng)用的性能效率基本都提升到了95%以上。

  第六關(guān) 解決非原子操作引發(fā)的虛擬機斷網(wǎng)

  在解決前面幾個攻關(guān)問題時,測試組反饋虛擬機偶發(fā)斷網(wǎng)。起初我沒有太在意,以為是測試環(huán)境IP沖突或者硬件不穩(wěn)定故障引起。后來發(fā)現(xiàn)這個問題在多個場景下都有出現(xiàn),應(yīng)該是虛擬機通過VirtIO-net模塊與外界網(wǎng)絡(luò)通信過程中的邏輯問題。經(jīng)過一個多月的初步工作,到了2019年2月都還沒有明確的思路和線索,我意識到這又是一個重量級的復(fù)雜bug,常規(guī)的工作組織機制是難以奏效的,于是召集大家開了一次攻關(guān)動員會。我先做了思想動員:KVM虛擬機經(jīng)過2年的研發(fā),目前到了最關(guān)鍵的階段,勝利就在眼前,也是對我們項目組決心、能力和作風(fēng)的一次考驗,這個階段我們絕對不能松勁;項目組每個同事都表現(xiàn)出了昂揚的斗志,一致表達(dá)了攻堅克難、不達(dá)目的、絕不收兵的決心。接下來這一個月,大家不分節(jié)假日、也不分上下班,按比996更緊張的節(jié)奏在工作。經(jīng)過大家大量的實驗和分析,并在關(guān)鍵場景上添加探測和判斷條件,楊小娟精確推斷出是由于某個隊列頭尾指針跳變引發(fā)同步異常。但我們的軟件代碼中,對指針的更新都是步進(jìn)式加1處理,不會有跳變更改,會是什么原因?qū)е碌闹羔樚兡?到了3月中旬的一天晚上,針對這個指針跳變問題,大家一起工作討論到深夜,朱琛通過觀察多次的錯誤現(xiàn)場記錄,提出了一個猜想,有可能是對指針更新采用了非對齊訪存,破壞了原子性引起。第二天一早,請來負(fù)責(zé)編譯器的徐成華和負(fù)責(zé)CPU結(jié)構(gòu)設(shè)計的吳瑞陽來一起分析,判斷確實因非對齊訪存引起。于是修改代碼,加強原子性處理,經(jīng)過嚴(yán)格的測試,措施有效,虛擬機網(wǎng)絡(luò)穩(wěn)定,斷網(wǎng)現(xiàn)象不再出現(xiàn)。

  第七關(guān) Openstack云環(huán)境

  在完成斷網(wǎng)問題處理后,其他方面的工作也都進(jìn)展順利。李雪峰發(fā)揮自己在ACPI、功耗管理方面的特長,快速完成了動態(tài)加減核的功能。楊小娟經(jīng)過3個月的工作,在PCI、中斷、hypercall等模塊中實現(xiàn)了對虛擬機遷移的支持,順利完成了虛擬機動態(tài)遷移的功能開發(fā)。劉學(xué)高效完成了虛擬機UEFI開發(fā),解決了大量外設(shè)驅(qū)動在虛擬機上的適配問題,通過性能優(yōu)化顯著改善了具體應(yīng)用場景的用戶體驗。王洪亮解決虛擬網(wǎng)絡(luò)的功能適配等問題。研究生呂晨解決了libvirt等模塊中的一些功能問題,完成虛擬機Balloon驅(qū)動的功能驗證。田延輝和汪雷一起完成了復(fù)雜的Openstack環(huán)境在龍芯平臺上的搭建和驗證,可以進(jìn)行規(guī)模化的應(yīng)用部署。李星2019年春節(jié)時也放棄了休息,在家里完成了將KVM開發(fā)分支向內(nèi)核主干的遷移工作。馬中征和南雄超完成了KVM自動化測試環(huán)境的構(gòu)建,極大提高了測試效率。研發(fā)組和劉鐘瑩負(fù)責(zé)的測試組緊密配合,解決了大量虛擬機產(chǎn)品化的問題,最終確認(rèn)虛擬機系統(tǒng)功能完備,具備了產(chǎn)品發(fā)布條件,并在2019年4月正式對外發(fā)布。

  回顧這兩年多來的虛擬機研發(fā)工作,復(fù)雜艱辛、攻堅克難的研發(fā)過程體現(xiàn)出項目團(tuán)隊不屈的意志品質(zhì),大家的忘我付出更令我極為感動。李星顧不上照顧那段時間生病的家人,經(jīng)常吃住都在公司;楊小娟家里孩子很小,每天都很晚才回家,孩子只能長期扔給老家老人在帶;朱琛老婆孩子都在外地,本來都提前買好了假日回家探親的車票,因為項目原因毫不猶豫地退掉了;王洪虎、南雄超、馬中征等經(jīng)常通宵達(dá)旦,就是為了第二天一早,測試組能夠拿到最新版本進(jìn)行測試;劉學(xué)、毛碧波、田延輝等放棄了很多休息時間,一同加入到攻關(guān)組,不辭辛勞、不計得失,主動承擔(dān)解決各種突發(fā)和臨時問題的任務(wù)。我也經(jīng)常因晚上工作太晚,好幾天不回家,于是買了一個氣墊床,晚上就在辦公室里睡了。

  天道酬勤,努力和辛勤付出沒有白費。隨著龍芯KVM虛擬機產(chǎn)品的正式發(fā)布,龍芯云應(yīng)用生態(tài)將進(jìn)入蓬勃發(fā)展的產(chǎn)品規(guī)模應(yīng)用期。目前大量云廠商等合作伙伴正基于龍芯KVM虛擬機開發(fā)云計算系統(tǒng),滿足對國產(chǎn)CPU云計算環(huán)境的迫切需求。

  KVM虛擬機的成功研發(fā)是龍芯核心文化理念強大生命力的一次生動展示。正是多年來堅持自主研發(fā)道路所錘煉出的奮斗精神、所積累下的技術(shù)底蘊,讓龍芯團(tuán)隊在面對高復(fù)雜系統(tǒng)研發(fā)的艱難險阻時,能一次次攻堅克難、砥礪奮進(jìn)。“堅持自主創(chuàng)新、掌握核心技術(shù)”,龍芯將在產(chǎn)業(yè)化道路上乘風(fēng)破浪,敦行致遠(yuǎn)。(本文作者為龍芯中科技術(shù)有限公司副總裁高翔)

「 支持烏有之鄉(xiāng)!」

烏有之鄉(xiāng) WYZXWK.COM

您的打賞將用于網(wǎng)站日常運行與維護(hù)。
幫助我們辦好網(wǎng)站,宣傳紅色文化!

注:配圖來自網(wǎng)絡(luò)無版權(quán)標(biāo)志圖像,侵刪!
聲明:文章僅代表作者個人觀點,不代表本站觀點——烏有之鄉(xiāng) 責(zé)任編輯:青松嶺

歡迎掃描下方二維碼,訂閱烏有之鄉(xiāng)網(wǎng)刊微信公眾號

收藏

心情表態(tài)

今日頭條

點擊排行

  • 兩日熱點
  • 一周熱點
  • 一月熱點
  • 心情
  1. “深水區(qū)”背后的階級較量,撕裂利益集團(tuán)!
  2. 大蕭條的時代特征:歷史在重演
  3. 瘋狂從老百姓口袋里掏錢,發(fā)現(xiàn)的時候已經(jīng)怨聲載道了!
  4. 央媒的反腐片的確“驚艷”,可有誰想看續(xù)集?
  5. 到底誰“封建”?
  6. 該來的還是來了,潤美殖人被遣返,資產(chǎn)被沒收,美吹群秒變美帝批判大會
  7. 兩個草包經(jīng)濟(jì)學(xué)家:向松祚、許小年
  8. “中國人喜歡解放軍嗎?”國外社媒上的國人留言,差點給我看哭了
  9. 掩耳盜鈴及其他
  10. 從歷史工人運動到當(dāng)下工人運動的謀略——(一)歷史工人運動
  1. 到底誰不實事求是?——讀《關(guān)于建國以來黨的若干歷史問題的決議》與《毛澤東年譜》有感
  2. 歷史上不讓老百姓說話的朝代,大多離滅亡就不遠(yuǎn)了
  3. 與否毛者的一段對話
  4. 孔慶東|做毛主席的好戰(zhàn)士,敢于戰(zhàn)斗,善于戰(zhàn)斗——紀(jì)念毛主席誕辰131年韶山講話
  5. “深水區(qū)”背后的階級較量,撕裂利益集團(tuán)!
  6. 大蕭條的時代特征:歷史在重演
  7. 社會亂糟糟的,老百姓只是活著
  8. 瘋狂從老百姓口袋里掏錢,發(fā)現(xiàn)的時候已經(jīng)怨聲載道了!
  9. 央媒的反腐片的確“驚艷”,可有誰想看續(xù)集?
  10. 不能將小崗村和井岡山相提并論!
  1. 北京景山紅歌會隆重紀(jì)念毛主席逝世48周年
  2. 元龍:不換思想就換人?貪官頻出亂乾坤!
  3. 遼寧王忠新:必須直面“先富論”的“十大痛點”
  4. 劉教授的問題在哪
  5. 季羨林到底是什么樣的人
  6. 歷數(shù)阿薩德罪狀,觸目驚心!
  7. 十一屆三中全會公報認(rèn)為“顛倒歷史”的“右傾翻案風(fēng)”,是否存在?
  8. 歐洲金靴|《我是刑警》是一部紀(jì)錄片
  9. 我們還等什么?
  10. 只有李先念有理由有資格這樣發(fā)問!
  1. 毛主席掃黃,雷厲風(fēng)行!北京所有妓院一夜徹底關(guān)閉!
  2. 劍云撥霧|韓國人民正在創(chuàng)造人類歷史
  3. 到底誰不實事求是?——讀《關(guān)于建國以來黨的若干歷史問題的決議》與《毛澤東年譜》有感
  4. 果斷反擊巴西意在震懾全球南方國家
  5. 重慶龍門浩寒風(fēng)中的農(nóng)民工:他們活該被剝削受凍、小心翼翼不好意思嗎?
  6. 央媒的反腐片的確“驚艷”,可有誰想看續(xù)集?
亚洲Av一级在线播放,欧美三级黄色片不卡在线播放,日韩乱码人妻无码中文,国产精品一级二级三级
亚洲日本在线观看网址 | 香蕉伊蕉中文在线视频播放 | 亚洲男人的天堂在线 | 欧美精品在线观看 | 一区二区三区中文字幕 | 亚洲中文字幕一二区精品自拍 |