亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        DPDK 在國產龍芯平臺的移植及評估*

        2020-07-19 02:04:22煒,陽春,李
        通信技術 2020年7期
        關鍵詞:龍芯套件網卡

        胡 煒,陽 春,李 文

        (中國電子科技集團公司第三十研究所,四川 成都 610041)

        0 引言

        龍芯是中國科學院計算所自主研發(fā)的通用處理器,采用自主LoongISA 指令系統,兼容MIPS 指令。目前系列芯片在政企、安全、金融、能源等應用場景得到了廣泛的應用。該系列芯片為通用處理器未針對網絡數據處理做特殊設計,在應用于網絡報文處理的安全產品時,存在一定性能瓶頸。當前廣為流行的數據平面開發(fā)套件(DPDK)針對通用處理器進行設計,減少不必要的I/O 開銷,更好的利用處理器運算能力,實現了高性能網絡數據包處理。為此,本文嘗試對該套件在龍芯3A2000 平臺進行移植以及性能對比測試。

        1 龍芯3A2000 處理器簡介

        龍芯3A2000/3B2000 以龍芯3A1000 四核框架結構為基礎,處理器核升級為新一代GS464E 架構,內存控制升級為高性能激進調度控制器,IO 總線升級至HT3.0,內部互連網絡則進行了大量的性能優(yōu)化。龍芯3A2000 處理器核心采用自主設計高性能GS464E 微結構,微結構綜合技術水平達到了與Intel 的Ivy Bridge 及AMD 的Steamroller 相當的水平。龍芯3A2000 支持自主龍芯指令系統LoongISA,在MIPS64 架構500 多條指令的基礎上,在基礎指令、虛擬機指令、面向X86 和ARM 的二進制翻譯指令、向量指令四個方面增加了近1400 條新指令。龍芯3A2000/3B2000 芯片在對龍芯3A1000 引腳兼容的基礎上,大幅提升了系統性能[1]。

        該芯片于2015 年推出,而目前最新型號為龍芯3A4000,但其指令集與最新型號差異不大,程序完全可兼容運行。同時,由于其處理性能相對較差也能更好評估DPDK 在該平臺上的性能變化情況。

        2 DPDK 開發(fā)套件簡介

        DPDK 全稱Intel Data Plane Development Kit,最初由Intel 公司開發(fā)的數據平面開發(fā)工具開發(fā)套件,代碼已經開源并得到業(yè)界和愛好者的廣泛支持和應用。最初該套件針對X86處理器開發(fā)也僅適配該架構。目前,通過一系列適配開發(fā),官方已明確支持X86、Power、Arm 等處理器架構。該套件為通用處理器架構下用戶空間高效的數據包處理提供庫函數和驅動的支持。由于該開發(fā)套件的成功,原用于網絡設備開發(fā)的網絡處理器,逐步被通用處理器替代[2]。

        DPDK 運行在Linux 操作系統的用戶空間,基于系統UIO 機制,實現在用戶空間上直接收發(fā)網絡數據包,繞過內核對數據包處理,避免數據在內核態(tài)與用戶態(tài)間的數據拷貝。相比原生Linux 內核數據轉發(fā),采用DPDK 技術后能夠大幅提升網絡數據的轉發(fā)性能。同時由于整個業(yè)務處理均在用戶態(tài)進行,大大方便了程序的開發(fā)、調試以及維護。

        該開發(fā)套件主要具備以下技術特點[3]:

        (1)UIO 技術,在用戶空間直接從網卡收發(fā)數據,實現數據零拷貝。

        (2)CPU 預取、數據包批處理機制,提高Cache 使用效率,降低數據處理時延。

        (3)CPU 親和性設置,減少任務切換,并確保程序熱點一直處于Cache 中。

        (4)大頁內存技術,提高Cache 命中率和內存訪問速率。

        (5)無鎖隊列技術,避免數據在不同CPU 核間傳遞的鎖開銷。

        3 DPDK 移植要點分析

        DPDK 開發(fā)套件包含硬件抽象庫(EAL)、網卡輪詢驅動、內存池管理、無鎖隊列等一系列組件,其系統架構如圖1 所示。

        圖1 DPDK 架構

        從圖1中可以看出DPDK的EAL組件承上啟下,在內核空間、用戶空間均有出現,EAL 完成對各種硬件平臺、操作系統的適配工作,也是移植中需重點關注的部分。

        本次移植基于DPDK17.11.4 版本進行,代碼結構如圖2 所示。

        圖2 DPDK 代碼結構

        在DPDK 中新增架構支持需調整config、lib、mk 目錄相關的配置文件、EAL 組件和編譯配置[4]。

        下面將針對X86 架構下的EAL 組件做進一步分析,其組成如下:

        (1)內核態(tài)

        EAL 組件在Linux 系統內核中包括兩個模塊,igb_uio、kni。這兩個模塊與硬件平臺無關主要適配不同版本的Linux 內核,其中igb_uio 用于實現對PCIE 網卡的UIO 訪問提供支持。

        (2)用戶態(tài)

        EAL 組件在用戶態(tài)的部分包括原子操作、字節(jié)序、CPU 時間標簽計數器、內存拷貝、預取操作、讀寫鎖、自旋鎖、向量指令、I/O 讀寫等等系列操作,與具體硬件相關代碼列表如表1 所示。

        表1 EAL 組件硬件相關代碼列表

        從上面的分析可知,實現DPDK 在不同硬件架構的移植主要需解決:

        (1)硬件架構相關配置文件、編譯選項添加;

        (2)EAL 內核模塊移植;

        (3)EAL用戶態(tài)組件的硬件架構相關實現調整。

        4 龍芯平臺移植過程

        本次移植選用龍芯3A2000 處理器、Intel 公司支持DPDK 的82 580 千兆網卡,運行龍芯公司提供的Loongnix 操作系統,Linux 內核版本為3.10。

        4.1 配置及編譯支持

        在config 目錄中添加配置文件defconfig_mips-loongson3a-linuxapp-gcc,其中主要包括:

        CONFIG_RTE_ARCH=”mips”

        CONFIG_RTE_MACHINE=”loongson3a”

        CONFIG_RTE_CACHE_LINE_SIZE=64

        CONFIG_RTE_ARCH_64=y

        在mk目錄中添加arch/mips/rte.vars.mk,machine/loongson3a/rte.vars.mk 文件,定義編譯相關選項,其中主要包括:

        ARCH ?=mips

        RTE_OBJCOPY_TARGET=elf64-tradlittlemips

        RTE_OBJCOPY_ARCH=mips:loongson_3a

        MACHINE_CFLAGS +=-march=loongson3a

        4.2 內核模塊移植

        本次移植所選版本DPDK 開發(fā)套件可支持3.10版本的Linux 內核,在內核編譯添加UIO 功能支持后,igb_uio 模塊可直接編譯、運行。由于所用龍芯平臺的內核不支持MSI 中斷方式,需調整igb_uio代碼,使用legacy 中斷方式。

        4.3 硬件架構相關調整

        龍芯3A2000 處理器基于MIPS 架構,采用小端序,大頁內存的頁大小為32 M,指令集也與X86存在較大的差異。

        新建lib/librte_eal/common/include/arch/mips目錄,在目錄中添加并實現表1 中相關代碼,其中關鍵的是rte_atomic.h(原子操作),rte_cycles.h(CPU 時間標簽計數器)。

        注:本次移植暫不支持rte_vect.h(向量指令)。

        (1)原子操作

        原子操作包括內存屏障函數,16 位、32 位、64 位的原子加減、CAS 函數。這里以rte_atomic32_add 為例做說明,其龍芯平臺實現如圖3 所示[5-6]。

        圖3 rte_atomic32_add 實現

        (2)CPU 時間標簽計數器操作

        該操作用于快速獲得CPU 時間戳,可避免使用開銷較大的系統函數gettimeofday。這在數據包輪詢處理中非常有用。其函數為rte_rdtsc,實現如圖4 所示[5-6]。

        圖4 rte_rdtsc 實現

        其他組件的移植實現不再詳細敘述。

        5 性能評估與分析

        為評估DPDK 對龍芯平臺網絡數據轉發(fā)性能的影響情況,采用信爾泰網絡測試儀對Linux 內核橋轉發(fā)、DPDK l2fwd 程序轉發(fā)的吞吐率進行測試評估,評估基于RFC2544 進行,包長包括64 字節(jié)、256字節(jié)、1280 字節(jié)。

        5.1 Linux 內核橋轉發(fā)測試

        Linux 內核轉發(fā)配置如下:

        (1)配置網橋

        brctl addbr br

        brctl addif br eth0

        brctl addif br eth1

        ifconfig br up

        (2)啟用IP 轉發(fā)

        echo 1 >/proc/sys/net/ipv4/ip_forward

        測試結果如圖5 所示。

        通過性能測試結果可以看出包長64 字節(jié)時,轉發(fā)吞吐率僅為155 Mbps,距離2000 Mbps 的理論值相差巨大。同時通過查看詳細測試統計,發(fā)現該字節(jié)包長情況下,稍超出155 Mbps 性能測試時,丟包率已超過1%。這意味著已達到性能瓶頸,進一步提升困難。

        5.2 DPDK l2fwd 轉發(fā)測試

        首先配置DPDK 運行環(huán)境,通過usertools 目錄下的dpdk-setup.sh 進行。配置網卡驅動為igb_uio,配置大頁內存數量為32(龍芯平臺頁大小為32 M)。l2fwd 運行參數如下所示[7]:

        l2fwd -c 0x6 -n 2 ---p 0x3

        測試結果如圖6 所示。

        圖5 內核橋轉發(fā)吞吐率

        圖6 l2fwd 轉發(fā)吞吐率

        通過性能測試結果可以看出包長64 字節(jié)時,轉發(fā)吞吐率已提升為551.58 Mbps,性能提升接近3.6倍。同時通過查看詳細測試情況,發(fā)現該字節(jié)包長情況下,稍超出551.58 Mbps 性能測試時,丟包僅僅丟包100 多個,丟包率小于萬分之一,平臺性能還存在進一步提升空間。初步懷疑網卡收發(fā)包的緩沖不足導致在某個臨界值時,無法緩存網絡報文進而導致丟包。為此,修改l2fwd 程序,增加網卡緩存并再次進行測試。

        5.3 DPDK l2fwd 再次轉發(fā)測試

        配置及l(fā)2fwd 運行參數與5.2 章節(jié)保持一致,僅調整程序緩存大小。

        性能測試結果如圖7 所示。

        圖7 l2fwd 再次測試的轉發(fā)吞吐率

        通過性能測試結果可以看出包長64 字節(jié)時,轉發(fā)吞吐率再次提升,達到為692.2 mbps,性能提升相對內核橋轉發(fā)達到4.5 倍。

        6 結語

        本文針對DPDK 開發(fā)套件在龍芯平臺上進行了移植,并進行了網絡數據轉發(fā)吞吐率測試及對比分析。結果證明DPDK 可以在龍芯平臺上正常運行,并且能將轉發(fā)性能提升接近5 倍。同時l2fwd 僅是簡單的數據報文轉發(fā)測試工具,不能很好利用處理器的多核運算能力,平臺轉發(fā)性能具備較高的提升空間。因此,基于龍芯平臺開發(fā)網絡安全產品具備技術可行性,可滿足自主可控要求。

        猜你喜歡
        龍芯套件網卡
        在DDS 中間件上實現雙冗余網卡切換的方法
        基于國產化龍芯的動環(huán)數據采集系統
        基于維修費用的關鍵部套件分析
        “龍吟套件”創(chuàng)作感悟
        山東陶瓷(2020年5期)2020-03-19 01:35:36
        Server 2016網卡組合模式
        工業(yè)照明超頻三天棚燈套件改造工程
        中國照明(2016年5期)2016-06-15 20:30:13
        “龍芯之父”胡偉武
        華人時刊(2016年13期)2016-04-05 05:50:06
        龍芯發(fā)布新一代處理器產品
        挑戰(zhàn)Killer網卡Realtek網游專用Dragon網卡
        CSRmesh開發(fā)套件加速物聯網產品開發(fā)
        91精品欧美综合在线观看| 欧美日韩国产码高清综合人成| 无码中文字幕日韩专区| 久久www免费人成精品| 亚洲免费人成在线视频观看| 无码中文字幕av免费放| 青青草手机成人自拍视频| 久久色悠悠综合网亚洲| 久久女人精品天堂av影院麻| 亚洲精品国偷拍自产在线| 久久久无码精品亚洲日韩按摩 | 精品国产品香蕉在线| 中国凸偷窥xxxx自由视频妇科 | 爱情岛永久地址www成人| 女同亚洲女同精品| 91福利国产在线观看网站| 日韩精品人妻视频一区二区三区| 久久久久亚洲av综合波多野结衣| 中文无码制服丝袜人妻av| 亚洲精品视频久久| 成激情人妻视频| 丝袜美腿国产一区二区| 亚洲图片自拍偷图区| 亚洲国产精品毛片av不卡在线| 四虎影视国产在线观看精品| 日本一区二区高清视频在线播放| 大陆老熟女自拍自偷露脸| 含紧一点h边做边走动免费视频 | 精品亚洲国产成人蜜臀av| 亚洲中文字幕久久无码精品| 国产精品亚洲一区二区无码国产| 日韩极品免费在线观看| 人人妻人人澡人人爽欧美一区| 午夜男女爽爽爽在线视频| 欧美1区二区三区公司| 国产高清视频在线不卡一区| 国产一区二区三区四区五区加勒比| 亚洲欧美日韩综合中文字幕| 久久亚洲宅男天堂网址| 美女张开腿黄网站免费| 亚洲久热无码av中文字幕|