開發與維運

平頭哥發佈支持玄鐵處理器Linux新版本,5大亮點速覽

為了便於 CPU 評估,系統集成,快速上手玄鐵處理器 Linux 操作系統,平頭哥更新了玄鐵處理器 linux 版本,結合 gitlab 開源 CI/CD 系統,對已發佈到開源社區的玄鐵架構 CPU 相關的生態軟件形成持續保障。

目前 linux 支持的玄鐵系列 CPU 有:

64位系列 (RISCV):

C910 三發射,深度亂序,12級流水線,搭載AI向量加速引擎的高性能多核處理器

32位系列:

C860 三發射,深度亂序,12級流水線,搭載AI加速引擎的高性能多核處理器

C810 雙發射,亂序,10級流水線,高性能超標量處理器

C807 雙發射,亂序,8級流水線,面向實時控制領域的高性能處理器。

未標題-2.jpg

詳細的支持型號可在https://github.com/c-sky/buildroot/releases 用瀏覽器打開查看

更新後的玄鐵處理器Linux有如下5大亮點:

一 、極簡開發,輕鬆上手 對於嵌入式開發者來說,能有易於上手的開發環境,簡單操作的系統是能夠節省很多時間的。玄鐵處理器 linux 開發平臺是基於 buildroot.org 構建的,幫助開發者快速構建玄鐵 CPU Linux 學習和實驗環境,快速集成開源組件。

Buildroot 是一款簡單,高效,易於使用的開源嵌入式linux 交叉編譯開發平臺(https://buildroot.org) ,每一款 CPU 提供了最小系統參考配置,通過https://github.com/c-sky/buildroot/releases 按季度進行發佈,同時結合 gitlab 開源 CI/CD (持續集成/持續發佈) 系統,保障發佈給開源社區代碼正確性。

玄鐵 linux 開發平臺融入代碼倉庫的動態 readme.txt 設計,將上手指引精確到每一個 config,逐行精簡命令,一目瞭然(每一個步驟不超過 10 條命令,支持 'ctrl c' + 'ctrl v' 秒貼執行,極速上手)。在如下的演示環境動圖中,最快用時不到15秒的時間,用戶即可完成快速上手,進入極簡開發的環境。

利用雲上 CI/CD 系統,預先編譯完成各個配置,並把結果存在雲上,供開發者直接下載快速體驗 linux 環境。其中 hw 目錄下,存放著玄鐵系列 CPU 最小系統硬件平臺,包含 fpga, asic。

配合玄鐵 CPU Jtag 調試器,提供清晰簡潔的運行腳本,不浪費第一次上手玄鐵 CPU 用戶的一分一秒。

(具體請參考 readme.txt -> 'Quick Start for hw run' 章節)

二、軟件豐富,定製靈活

通過開發平臺,可獲得:

linux 最小系統樣例

Bootloader 和 Opensbi 樣例

基於最小系統硬件,調試環境 (Jtag + DRAM + 網絡)

基於 QEMU 的配套驗證環境

豐富的診斷工具 (gdb, perf PMU state/record, ftrace, kprobe/uprobe, tracecmd + kernelshard, bpf 等)

一般來說,對於一個新的 CPU 體系架構,構建一套最小系統,要從基礎編譯器,內核,最小文件系統開始準備,費時耗力。玄鐵 linux 開發平臺通過一個配置,將工具鏈,內核,根文件系統的軟件包集成在一起,一條簡潔的命令就可以讓開發者從源碼級構建整個 linux 系統,非常方便!
AA9DACC0-5A08-46e2-9612-62A8226CE95A.png

配置圖例

三、易於診斷,高效定位

玄鐵處理器linux 診斷性工具眾多,包含如下工具:

以 Perf, ftrace, K/Uprobe, stap, BPF tools 組合形成的 linux 性能分析,動態追蹤,系統觀測工具

以 GDB/KGDB/KDUMP 為代表的 交互式,在/離線調試工具

以 top/free/slabtop/iostat/iotop/netstat/sar 為代表的 linux 系統監控工具

在 v1.0.9 版本中,實現了玄鐵 C800 CPU kprobe/uprobe 指令流插樁功能,即使在沒有源碼的情況下,也可以通過 perf probe, tracecmd 等前端工具,從容調試,極大提升開發效率。

支持 Perf stat/record + callchain (配合圖形前端工具可生成火焰圖,timechart )
1589808288957-e2db69b8-be99-4641-9897-9a5a77f2a689.png
火焰圖
1589808430157-490910f4-5858-4586-b349-32f90e0da370.png
timechart圖

支持 Perf PMU 硬事件統計 & 採樣,覆蓋指令數/週期數/CACHE行為/TLB行為/LSU行為 等多個 CPU 內部模塊,方便 CPU 評估,分析性能瓶頸,快速定位問題。

支持 ftrace 內核追蹤框架

支持 kprobe/uprobe linux 動態追蹤功能

支持 gdb,gdbserver,kdump,coredump 交互調試工具

支持 lockdep 內核死鎖檢查

支持 gcov 內核代碼覆蓋率統計

支持 strace 系統調用追蹤

支持 mtrace (glibc) 內存洩漏分析

未來會持續完善 Linux 診斷性工具集,提供豐富的 Linux 診斷手段。
1588125059953-68ac82f4-6ac8-4878-bb63-0613957b1919.jpeg

圖片來源brendangregg.com

四、持續集成,質量保證

玄鐵系列 CPU 已被眾多開源生態軟件支持,為了讓用戶在使用這些開源軟件時,得到更好的保障,平頭哥建立持續跟蹤系統,確保開源軟件在迭代過程中的質量。

在 gitlab 上構建了一個開源開放的 CI/CD 系統。它經歷了1年多的運行與完善,累計執行數千次 pipeline 版本迭代,有效保障了開源社區 CPU 後端代碼的質量。(https://gitlab.com/c-sky/buildroot/pipelines/charts)

五、源於開源,回饋社區

一款優秀的 CPU,離不開社區軟件生態的支持,離不開積極參與 kernel.org 社區的開發,開發者也擁有自己的 mailing list:

[email protected] (https://lore.kernel.org/linux-csky/)

並隨著 linux 開發節奏,定期向 Linus Torvalds 先生發出來自中國 CPU 架構 的 pull-request。

看完是否已經迫不及待想試用了?複製鏈接
https://github.com/c-sky/buildroot/releases
即可查看。想要獲取更多資料和信息可登陸OCC官網https://occ.t-head.cn/development/chip?spm=a2cl5.14300690.0.0.505f180fBqNOFx 下載。掃下方二維碼加入平頭哥芯片開放社區釘釘交流群,在群裡發出的你的試用感慨與疑問,一起讓玄鐵處理器 Linux 工具跑得更順暢。
2AAD9607-9FE5-4bec-A45F-3AC81D6418A9.png

作者:郭任
編輯:琛琛

參考資料:

kernel.org

buildroot.org

brendangregg.com

Leave a Reply

Your email address will not be published. Required fields are marked *