如何在Linux基礎(chǔ)上提供更加高效的實(shí)時(shí)處理能力,同時(shí)又簡(jiǎn)化多操作系統(tǒng)并存帶來的軟件復(fù)雜性?為此,Enea(宜能)公司在用戶空間實(shí)現(xiàn)了LWRT(Light-weight Run-time Threading,輕量級(jí)運(yùn)行環(huán)境)。LWRT是針對(duì)多核使用場(chǎng)景設(shè)計(jì)的,它基于Linux用戶空間的標(biāo)準(zhǔn)Pthread作為運(yùn)行載體,并在此基礎(chǔ)上實(shí)現(xiàn)了可確定的調(diào)度方式、信號(hào)機(jī)制和內(nèi)存管理。通過這種方式,LWRT內(nèi)部的線程切換和信號(hào)處理不再依靠Linux內(nèi)核調(diào)度機(jī)制,而是完全在用戶態(tài)的LWRT內(nèi)部實(shí)現(xiàn)。這在減少系統(tǒng)開銷的同時(shí),也實(shí)現(xiàn)了嚴(yán)格意義上的實(shí)時(shí)切換。圖4描述了基于LWRT電信基站軟件架構(gòu)。
圖4:LWRT多核解決方案。
為了保證整個(gè)LWRT的實(shí)時(shí)性,我們需要將其承載的容器Linux Pthread綁定到一個(gè)物理內(nèi)核上,通過這種方式使LWRT像單獨(dú)運(yùn)行在這個(gè)物理內(nèi)核的傳統(tǒng)RTOS一樣。同時(shí),我們?cè)贚WRT上設(shè)計(jì)了用戶態(tài)中斷處理模型,將整個(gè)中斷處理過程放在用戶態(tài)進(jìn)行。在Linux內(nèi)核只需要在上半部中向LWRT發(fā)出中斷信號(hào),而所有的下半部處理完全實(shí)現(xiàn)在用戶態(tài)的LWRT中。整個(gè)中斷處理不再有內(nèi)核互斥鎖的影響,從而保證了高實(shí)時(shí)處理能力。
先進(jìn)的設(shè)計(jì)保證了高效的性能,在一個(gè)實(shí)際測(cè)試環(huán)境中對(duì)于一個(gè)簡(jiǎn)單的“信號(hào)觸發(fā)-線程切換-信號(hào)接收”的線程切換模型,LWRT可以在不超過200個(gè)周期內(nèi)完成,且該數(shù)據(jù)不會(huì)隨著CPU占用率增高而受到影響,而在同一硬件條件下,采用Linux標(biāo)準(zhǔn)線程完成同樣的切換動(dòng)作需要大約3500個(gè)時(shí)鐘周期,測(cè)試解決見圖5.整個(gè)切換過程達(dá)到了高實(shí)時(shí)性要求。Linux上將不再只是運(yùn)行控制面代碼,用戶完全可以將數(shù)據(jù)面處理遷移到Linux上?;谶@種方案我們將不再需要RTOS,而是將RTOS的功能基于LWRT來提供。
圖5:LWRT線程切換和Pthread線程切換對(duì)比。
目前整個(gè)電信領(lǐng)域向IP化發(fā)展,針對(duì)于IP數(shù)據(jù)處理,Enea實(shí)現(xiàn)了PAX(數(shù)據(jù)包加速基礎(chǔ))解決方案。PAX同樣運(yùn)行在Linux的用戶態(tài)。
它實(shí)現(xiàn)了基于圖形方式現(xiàn)實(shí)的IP報(bào)文分析處理流程,在PAX中可以完成IP轉(zhuǎn)發(fā)、IPSec、流量控制和ARP/WLAN網(wǎng)橋,以及數(shù)據(jù)包檢查DPI等IP通訊中最消耗資源的處理。針對(duì)于數(shù)據(jù)面的這些處理過程不再依賴于原有Linux內(nèi)核IP協(xié)議棧實(shí)現(xiàn),而是由PAX及其相關(guān)的硬件加速器一起完成。這樣便將原有Linux IP轉(zhuǎn)發(fā)能力提高數(shù)倍,而非常適合于可擴(kuò)展、高吞吐量和低時(shí)延的IP協(xié)議處理,尤其適用于基于IP的無線基站、控制器、智能防火墻、入侵檢測(cè)系統(tǒng)和防病毒掃描網(wǎng)關(guān)等產(chǎn)品中。同時(shí),PAX提供的圖像化追蹤(tracing)和分析(profiling)功能可以方面用戶找出系統(tǒng)瓶頸所在,進(jìn)行針對(duì)性優(yōu)化。
圖6:PAX數(shù)據(jù)處理流程圖。
電信級(jí)應(yīng)用對(duì)產(chǎn)品的可靠性和穩(wěn)定性的要求極高,為此Enea將多年成熟的軟件開發(fā)流程引入了Linux的開發(fā)和維護(hù)中。這樣保證了所有用戶的可選軟件包都是在不同硬件平臺(tái)下嚴(yán)格驗(yàn)證過的。作為開源社區(qū)成員,我們也密切監(jiān)視開源社區(qū)的安全漏洞和Bugfix修復(fù)情況,并在全面驗(yàn)證后將其納入Enea Linux產(chǎn)品中。為了更好地保護(hù)用戶在軟件領(lǐng)域的投資,在Enea Linux的升級(jí)版本中可以保證Enea IPR的向后兼容。這將確保對(duì)每一個(gè)硬件平臺(tái)的Linux內(nèi)核進(jìn)行長(zhǎng)期支持。另外,所有目標(biāo)平臺(tái)均采用Linux 3.0.x系列內(nèi)核,并且每18個(gè)月更新一次內(nèi)核版本。根據(jù)與客戶達(dá)成的協(xié)議,Enea也可更加頻繁地更新內(nèi)核版本。
在Enea Linux提供的開發(fā)工具中,用戶依然可以找到熟悉的Opitma調(diào)試分析工具。這縮短了用戶學(xué)習(xí)新開發(fā)工具的時(shí)間,同時(shí)也集成了LTTng、oProfile、Gcov&gprof、valgrind等常用開源分析工具和Qemu主機(jī)仿真環(huán)境。
Enea作為一家全球領(lǐng)先的3G和4G基礎(chǔ)架構(gòu)操作系統(tǒng)解決方案供應(yīng)商,擁有40年通信驅(qū)動(dòng)產(chǎn)品解決方案研發(fā)經(jīng)驗(yàn),同時(shí),Enea也是高可靠性和性能要求極高的軟件平臺(tái)開發(fā)的全球引領(lǐng)者。Enea在實(shí)時(shí)操作系統(tǒng)和高可靠性中間件方面,必將會(huì)將其具有的豐富經(jīng)驗(yàn)分享給客戶,解決客戶面臨的問題。并且在成就客戶的同時(shí),實(shí)現(xiàn)自己的價(jià)值也是Enea公司一直追求的不變承諾。
評(píng)論