DPDK在國(guó)產(chǎn)龍芯平臺(tái)的移植及評(píng)估
【文章頁(yè)數(shù)】:5 頁(yè)
【部分圖文】:
圖1DPDK架構(gòu)
DPDK開(kāi)發(fā)套件包含硬件抽象庫(kù)(EAL)、網(wǎng)卡輪詢驅(qū)動(dòng)、內(nèi)存池管理、無(wú)鎖隊(duì)列等一系列組件,其系統(tǒng)架構(gòu)如圖1所示。從圖1中可以看出DPDK的EAL組件承上啟下,在內(nèi)核空間、用戶空間均有出現(xiàn),EAL完成對(duì)各種硬件平臺(tái)、操作系統(tǒng)的適配工作,也是移植中需重點(diǎn)關(guān)注的部分。
圖2DPDK代碼結(jié)構(gòu)
本次移植基于DPDK17.11.4版本進(jìn)行,代碼結(jié)構(gòu)如圖2所示。在DPDK中新增架構(gòu)支持需調(diào)整config、lib、mk目錄相關(guān)的配置文件、EAL組件和編譯配置[4]。
圖3rte_atomic32_add實(shí)現(xiàn)
原子操作包括內(nèi)存屏障函數(shù),16位、32位、64位的原子加減、CAS函數(shù)。這里以rte_atomic32_add為例做說(shuō)明,其龍芯平臺(tái)實(shí)現(xiàn)如圖3所示[5-6]。(2)CPU時(shí)間標(biāo)簽計(jì)數(shù)器操作
圖4rte_rdtsc實(shí)現(xiàn)
該操作用于快速獲得CPU時(shí)間戳,可避免使用開(kāi)銷較大的系統(tǒng)函數(shù)gettimeofday。這在數(shù)據(jù)包輪詢處理中非常有用。其函數(shù)為rte_rdtsc,實(shí)現(xiàn)如圖4所示[5-6]。其他組件的移植實(shí)現(xiàn)不再詳細(xì)敘述。
本文編號(hào):3944396
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3944396.html