国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Ftrace研究Linux內(nèi)核

Linux閱碼場 ? 來源:Linux閱碼場 ? 作者:Linux閱碼場 ? 2022-05-05 10:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

說明背景

文檔作為會議的記錄和補充,會議主題是《使用Ftrace研究Linux內(nèi)核》,主講人謝歡。回放鏈接

基本內(nèi)容

1、Ftrace整體框架

c19f5546-cc07-11ec-bce3-dac502259ad0.jpg

根據(jù)官方文檔的定義,F(xiàn)trace是一個內(nèi)部跟蹤器,旨在幫助系統(tǒng)的開發(fā)者和設計者去觀測內(nèi)核的運行。它可以被用于調(diào)試或分析發(fā)生在用戶空間之外的延遲和性能問題。隨著發(fā)展,目前已經(jīng)演變成為一個基礎的調(diào)試框架(支持多個不同類型的trace功能)。 直觀理解有兩層含義:一是提供函數(shù)鉤子的基礎設施,二是基于tracefs文件系統(tǒng)的trace框架。
  • function tracer:在函數(shù)頭掛鉤子函數(shù)

  • function graph tracer:可以帶時間戳函數(shù)執(zhí)行流打印

  • kprobe:一般是掛在函數(shù)入口點,用于獲取參數(shù)

  • trace event:函數(shù)執(zhí)行時調(diào)用靜態(tài)的鉤子函數(shù)

  • kretprobe:通常是函數(shù)出口點,執(zhí)行鉤子函數(shù)

2、使用方式

c1b63996-cc07-11ec-bce3-dac502259ad0.jpg

Ftrace通過tracefs文件系統(tǒng)的控制文件來進行調(diào)試。如果內(nèi)核構(gòu)建階段配置ftrace,默認會掛載tracefs到/sys/kernel/tracing,也可以在運行環(huán)境手動掛載

c1c8a69e-cc07-11ec-bce3-dac502259ad0.png

接下來的內(nèi)容我會根據(jù)課程介紹,整理出ftrace不同功能的使用案例,一些問答和和觀點以及個人對課程總結(jié)。

function tracer使用

case01: 過濾"vfs_open"函數(shù)

c1dd2f06-cc07-11ec-bce3-dac502259ad0.png

觀察結(jié)果:圖示能看到所有執(zhí)行vfs_open的跟蹤信息。

c1f35c68-cc07-11ec-bce3-dac502259ad0.png

function graph tracer使用

case01: 函數(shù)"vfs_open"的執(zhí)行時間


		

echo vfs_open > ./set_ftrace_filter # 過濾要跟蹤的函數(shù)

echo function_graph > ./current_tracer # 設置當前使用的tracerecho 1 > ./options/funcgraph-proc # 啟用進程TASK/PID打印cp trace /test.txt && cat /test.txt

c211ac4a-cc07-11ec-bce3-dac502259ad0.jpg

觀察結(jié)果:查看到vfs_open被執(zhí)行的調(diào)試信息包括TASK/PID,函數(shù)的執(zhí)行時間在,接口名。原理上是通過在函數(shù)的入口點和出口點(kprobe/kretprobe)掛鉤子來實現(xiàn)的。

case02: 函數(shù)"vfs_open"向下執(zhí)行流

echo > ./set_ftrace_filter # 不使用過濾!!!echo vfs_open > ./set_graph_function #  使用函數(shù)圖表echo function_graph > ./current_tracer # 過濾要跟蹤的函數(shù)echo 1 > ./options/funcgraph-proc # 打印進程TASK/PIDecho 1 > ./options/funcgraph-tail # 尾部注釋(方便觀察)cp trace /test.txt && cat /test.txt

c227c1ce-cc07-11ec-bce3-dac502259ad0.jpg

觀察結(jié)果:vfs_open被執(zhí)行時,能看到向下的執(zhí)行流程,其中涉及到的函數(shù)調(diào)用和相關(guān)信息會打印出來。

kprobe event

case01: 查看"vfs_open"當前打開文件名

# 理論計算:# $arg1, 第一個參數(shù)# +0x8($arg1), 地址偏移+0x8# +0x70(+0x8($arg1)), 相當與C語言的 *(*($arg1 + 0x8) + 0x70)
echo 'p vfs_open name=+0x70(+0x8($arg1)):string namep=+0(+0x60(+0x8($arg1))):string' > ./kprobe_eventsecho 1 > ./events/kprobes/p_vfs_open_0/enableecho > trace && cat /test.txtcp trace /test.txt && cat /test.txt

c23dbad8-cc07-11ec-bce3-dac502259ad0.jpg

觀察結(jié)果:圖示看到一些vfs_open函數(shù)的kprobe事件,name是當前被查看的文件名。kprobe通過參數(shù)加地址偏移計算拿到特定成員的地址

case02: 捕獲"vfs_open"查看指定文件的信息的事件

# 功能: 利用filter和trigger文件root@debian:/sys/kernel/debug/tracing# ls ./events/kprobes/p_vfs_open_0/enable filter format hist id inject trigger
# 格式: kprobe eventroot@debian:/sys/kernel/debug/tracing# cat ./events/kprobes/p_vfs_open_0/format
echo 'p vfs_open name=+0x70(+0x8($arg1)):string namep=+0(+0x60(+0x8($arg1))):string' > ./kprobe_eventsecho 1 > ./events/kprobes/p_vfs_open_0/enable # 過濾包含"test"字段的文件的事件echo 'name ~ "*test*"' > ./events/kprobes/p_vfs_open_0/filterecho > trace && cat /test.txtecho 'stacktrace if name ~ "*test*"' > ./events/kprobes/p_vfs_open_0/trigger  # 包含"test"字段的文件的事件會觸發(fā)"stacktrace"堆棧打印

trace event

cat /sys/kernel/debug/tracing/available_events # 查看當前支持的跟蹤事件列表

case01: 打開驅(qū)動中跟蹤節(jié)點

echo 1 > /sys/kernel/debug/tracing/events/gsgpu/enable && echo 0 > /sys/kernel/debug/tracing/trace && /root/run_test.sh ; cp /sys/kernel/debug/tracing/trace /test.txt && echo 0 > /sys/kernel/debug/tracing/events/gsgpu/enablecat /test.txt

case02: 通過filter過濾事件

echo 0 > /sys/kernel/debug/tracing/events/gsgpu/enable && echo 1 > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/enable && echo 0 > /sys/kernel/debug/tracing/trace && echo "bo_size >= 50000" > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/filter && /root/run_test.sh ; cp /sys/kernel/debug/tracing/trace /test.txt && echo 0 > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/filtercat /test.txt

case03: 通過trigger查看棧回溯

echo 0 > /sys/kernel/debug/tracing/events/gsgpu/enable && echo 1 > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/enable && echo 0 > /sys/kernel/debug/tracing/trace && echo 'stacktrace' > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/trigger && /root/run_test.sh ; cp /sys/kernel/debug/tracing/trace /test.txt && echo '!stacktrace' > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/trigger && cat /test.txt

objtrace

case01:觀察對象數(shù)據(jù)在函數(shù)中流動

源碼位置:https://github.com/x-lugoo/linux/tree/objtrace-v9

[root@JeffXie tracing]# cat ./events/kprobes/p_bio_add_page_0/trigger Available triggers: traceon traceoff snapshot stacktrace enable_event disable_event hist objtrace
cd /sys/kernel/debug/tracing/echo 'p bio_add_page arg1=$arg1 arg2=$arg2' > ./kprobe_eventsecho 'objtracearg1,0x285 if comm == "cat"' > ./events/kprobes/p_bio_add_page_0/trigger# du -sh /test.txt // 12Kcat /test.txt > /dev/nullcat ./trace

c252437c-cc07-11ec-bce3-dac502259ad0.jpg

觀察結(jié)果:參數(shù)arg1對應object對象,由于有kprobe匹配到目標參數(shù)達到觸發(fā)條件,我看到圖示中打印的調(diào)試信息。這樣就可以觀察到指定接口的參數(shù)在內(nèi)核函數(shù)中是怎樣流動的

一些觀點

  • 1、ftrace很多功能在國內(nèi)使用不充分,比如tracer網(wǎng)上資料少,ftrace功能很強大,可挖掘的潛力大。像是大家對shell的使用,如果大家能積累更多的案例,這樣能更好的普及和使用。

  • 2、ftrace和正常的日志環(huán)形緩沖區(qū)不同,如果大量日志向同一個緩沖區(qū)輸入,一會導致信息混亂,二是容易覆蓋有效數(shù)據(jù)。使用ftrace的過濾等功能,可以更好的解決此類問題(適用更加復雜的業(yè)務場景)。補充ftrace其他功能:自動保存結(jié)果輸出到文件;生成直方圖;觸發(fā)其他事件;等等。

  • 3、ftrace對內(nèi)核的通用性還是比較強的,相比ebpf來說ftrace對于低版本的內(nèi)核更加友好。

  • 4、ftrace的用戶群體大,但是名聲沒有ebpf的功能大。

  • 5、ftrace的tracer在linux中使用shell腳本來實現(xiàn),如果想要觀察和定位,使用這種手段方便;如果轉(zhuǎn)發(fā)類或者做業(yè)務相關(guān)的,推薦使用ebpf比較多??梢愿鶕?jù)各自優(yōu)勢應用到不同的場景,也可以兩者結(jié)合使用。

一些問答

perf/ftrace/ebpf關(guān)系

基于kprobe的ebpf通過 fd找到字節(jié)碼程序,當perf使用相同功能的時候,可以依據(jù) fd來找到這個字節(jié)碼程序?;趉probe的ebpf本質(zhì)上是基于ftrace, 使用ftrace框架來調(diào)用字節(jié)碼程序

#使用bpftrace工具將ebpf程 序掛載到"kprobe:do_ nanosleep"bpftrace -e 'kprobe:do_nanosleep { printf("PID %d sleeping... ", pid); }'

kprobe和function trace的鉤子有什么區(qū)別?

基本相同,kprobe的鉤子函數(shù)會做更多的解析工作,例如解析更多的 field(例如argN或stackN等)

什么是no trace函數(shù)?

如果函數(shù)本身參與ftrace功能,不能用于trace(避免遞歸) 這樣的函數(shù)一般都是no trace。

uprobe是用什么實現(xiàn)的?

uprobe在用戶層,基于斷點指令來實現(xiàn)。

ftrace對性能影響多大?

看如何使用?如果對所有函數(shù)使用function tracer,如果只使用一個性能事件性能消耗很小。

如果從學習內(nèi)核的角度來講,怎樣把ftrace作為一個輔助的工具來上手內(nèi)核?

在調(diào)試內(nèi)核的時候,通常使用printk/printf來使用,使用ftrace的前提要戒掉這個習慣,然后使用ftrace工具來調(diào)試。

對于可靠性和安全性比較高的領(lǐng)域,對于ftrace是不是要慎用一些?

是的,對原理理解要求比較高一些。對原理比較清楚的話,能很好的縮小ftrace的使用范圍,來進一步降低對系統(tǒng)的性能消耗。

如何評估這些調(diào)試工具的開銷?

正確對待ftrace是一個輔助工具,前提還是要對代碼比較熟悉,ftrace輔助對代碼的觀察。

ftrace這樣的工具好處?

使用在不破壞內(nèi)核的情況下,提供一個對內(nèi)核可觀測手段;提供基礎的tracer功能,靈活運用好tracer功能對分析問題幫助;perf工具將各種類型的掛載點收入囊中,一統(tǒng)江湖。

linux內(nèi)核中有這么多鉤子?都有什么局限,如何選擇

看具體想使用哪些功能,比如查看函數(shù)怎么執(zhí)行,選擇function tracer;比如查看某一個函數(shù)的參數(shù),使用kprobe掛載點對應的鉤子函數(shù)不一樣的。

ftrace的tracer在linux中使用shell腳本來實現(xiàn),如果想要觀察和定位,使用這種手段方便;如果轉(zhuǎn)發(fā)類或者做業(yè)務相關(guān)的,推薦使用ebpf比較多

各有優(yōu)勢,應用到不同的場景,也可以兩者結(jié)合使用。

嵌入式場景,內(nèi)存資源比較緊張的時候適用么?

內(nèi)存消耗比較小。也可以設置,buffer可以調(diào)小一些。

ftrace在性能消耗比ebpf更小么?

也不一定,看使用那部分功能。

有沒有推薦的日志化性能分析的圖形工具?

tracecmd和KernelShark。

個人總結(jié)

內(nèi)核源碼中放置很多靜態(tài)跟蹤節(jié)點,這些節(jié)點可以被關(guān)聯(lián)到對應的回調(diào)函數(shù)。當我想要調(diào)試某個子系統(tǒng)/模塊時,通過debug系統(tǒng)將對應的節(jié)點開啟(將回調(diào)函數(shù)掛鉤子到靜態(tài)跟蹤點上,與之關(guān)聯(lián)),這樣內(nèi)核在執(zhí)行到跟蹤點位置的時候會調(diào)用鉤子函數(shù),最終執(zhí)行結(jié)果將被輸出寫到一個環(huán)形日志緩存區(qū)里,通過debug系統(tǒng)查看信息。

作為一種內(nèi)核層面的調(diào)試手段,trace event利用了ftrace框架,算是ftrace的一個應用吧。當我想要調(diào)試某一個模塊,開啟對應的節(jié)點就好了,trace event基于現(xiàn)有的跟蹤節(jié)點(一般是寫代碼的添加好的)效率高些,或者解決新的bug時將關(guān)鍵調(diào)試信息固化到調(diào)試系統(tǒng)里。

從做工作的角度,我能體會到的是trace event工具能帶來工作效率的提升。從學習的角度,我相信使用ftrace工具能更加方便觀測內(nèi)核。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    4

    文章

    1468

    瀏覽量

    42877
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11760

    瀏覽量

    219036

原文標題:會議記錄|使用Ftrace研究Linux內(nèi)核

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    進迭時空 Upstream | K3 獲得 Linux 7.0 內(nèi)核原生支持

    2026年2月22日,隨著Linux內(nèi)核正式發(fā)布v7.0-rc1版本,全球開源社區(qū)迎來了RISC-V生態(tài)的歷史性跨越。進迭時空(SpacemiT)研發(fā)的高性能RISC-VAICPU芯片K3作為全球首
    的頭像 發(fā)表于 02-27 18:10 ?8563次閱讀
    進迭時空 Upstream | K3 獲得 <b class='flag-5'>Linux</b> 7.0 <b class='flag-5'>內(nèi)核</b>原生支持

    Linux內(nèi)核伙伴系統(tǒng)內(nèi)存申請函數(shù)詳解:從原理到實戰(zhàn)

    Linux 內(nèi)核中,內(nèi)存管理是整個系統(tǒng)穩(wěn)定運行的基石,而伙伴系統(tǒng)(Buddy System) 作為內(nèi)核物理內(nèi)存分配的核心機制,更是驅(qū)動開發(fā)、內(nèi)核模塊開發(fā)的必備知識點。它通過 "2
    的頭像 發(fā)表于 02-10 16:58 ?3631次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>伙伴系統(tǒng)內(nèi)存申請函數(shù)詳解:從原理到實戰(zhàn)

    Linux內(nèi)核bug狩獵指南:從棧跟蹤到修復,官方文檔教你搞定系統(tǒng)核心故障

    內(nèi)核Linux 系統(tǒng)的 “心臟”—— 一旦它出 bug,小則功能異常,大則系統(tǒng)崩潰、死機。但內(nèi)核 bug 往往藏在百萬行代碼中,想快速定位、修復絕非易事。
    的頭像 發(fā)表于 02-06 16:59 ?3124次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>bug狩獵指南:從棧跟蹤到修復,官方文檔教你搞定系統(tǒng)核心故障

    Linux內(nèi)核的“心跳”:jiffies如何為系統(tǒng)計時?

    Linux 內(nèi)核的世界里,有一個默默工作的 "計時器"——jiffies。它不像我們手機上的時鐘那樣顯示年月日,卻掌控著內(nèi)核中絕大多數(shù)時間相關(guān)的操作:從進程調(diào)度到設備驅(qū)動的定時檢查,都離不開它的身影。
    的頭像 發(fā)表于 02-04 16:27 ?823次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>的“心跳”:jiffies如何為系統(tǒng)計時?

    深入RK3588內(nèi)核:rockchip_linux_defconfig的作用與調(diào)試價值

    在 RK3588 芯片的 Linux 開發(fā)中,有一個文件始終是開發(fā)者繞不開的核心 ——kernel/arch/arm64/configs/rockchip_linux_defconfig。無論是首次
    的頭像 發(fā)表于 02-03 15:56 ?1161次閱讀
    深入RK3588<b class='flag-5'>內(nèi)核</b>:rockchip_<b class='flag-5'>linux</b>_defconfig的作用與調(diào)試價值

    Linux系統(tǒng)內(nèi)核參數(shù)調(diào)優(yōu)實戰(zhàn)指南

    Linux 內(nèi)核參數(shù)調(diào)優(yōu)是系統(tǒng)性能優(yōu)化的核心環(huán)節(jié)。隨著云原生架構(gòu)的普及和硬件性能的飛速提升,默認的內(nèi)核參數(shù)配置往往無法充分發(fā)揮系統(tǒng)潛力。在高并發(fā) Web 服務、大數(shù)據(jù)處理、容器化部署等場景下,合理的
    的頭像 發(fā)表于 01-28 14:27 ?443次閱讀

    深入Linux內(nèi)核:進程調(diào)度的核心邏輯與實現(xiàn)細節(jié)

    ,背后都離不開內(nèi)核調(diào)度算法的精準操控。今天,我們就從優(yōu)先級、調(diào)度算法、時間片分配到底層實現(xiàn),全方位拆解Linux內(nèi)核進程調(diào)度的核心邏輯。 一、進程調(diào)度的“身份標識”:優(yōu)先級與分類 要理解調(diào)度邏輯,首先得搞懂:進程憑什么“插隊”?
    的頭像 發(fā)表于 12-24 07:05 ?4307次閱讀
    深入<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>:進程調(diào)度的核心邏輯與實現(xiàn)細節(jié)

    基于 DR1M90 的 Linux-RT 內(nèi)核開發(fā):從編譯配置到 GPIO / 按鍵應用實現(xiàn)(1)

    本手冊由創(chuàng)龍科技研發(fā),針對 DR1M90,詳述 Linux-RT 實時內(nèi)核開發(fā):含實時性測試(LinuxLinux-RT 對比、CPU 空載 / 滿負荷 / 隔離狀態(tài)測試)、
    的頭像 發(fā)表于 12-02 10:38 ?1180次閱讀
    基于 DR1M90 的 <b class='flag-5'>Linux</b>-RT <b class='flag-5'>內(nèi)核</b>開發(fā):從編譯配置到 GPIO / 按鍵應用實現(xiàn)(1)

    Linux內(nèi)核printk日志級別全解析:從參數(shù)解讀到實操配置

    一、開篇:一個命令引出的核心問題 在?Linux?終端執(zhí)行?cat /proc/sys/kernel/printk,你可能會看到這樣的輸出: 這串數(shù)字不是隨機的,而是內(nèi)核日志系統(tǒng)的“核心配置開關(guān)
    的頭像 發(fā)表于 11-20 15:54 ?1705次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>printk日志級別全解析:從參數(shù)解讀到實操配置

    重磅升級!迅為iTOP-Hi3403開發(fā)板SDK全面升級至Linux?6.6內(nèi)核

    【重磅升級!迅為iTOP-Hi3403開發(fā)板SDK全面升級至Linux?6.6內(nèi)核
    的頭像 發(fā)表于 11-18 13:34 ?1007次閱讀
    重磅升級!迅為iTOP-Hi3403開發(fā)板SDK全面升級至<b class='flag-5'>Linux</b>?6.6<b class='flag-5'>內(nèi)核</b>

    deepin亮相2025中國Linux內(nèi)核開發(fā)者大會

    11 月 1 日,第二十屆中國 Linux 內(nèi)核開發(fā)者大會(CLK)在深圳舉辦。CLK 作為國內(nèi) Linux 內(nèi)核領(lǐng)域極具影響力的峰會,由清華大學、Intel、華為、阿里云、富士通南大
    的頭像 發(fā)表于 11-05 17:59 ?823次閱讀

    Linux內(nèi)核參數(shù)調(diào)優(yōu)方案

    在高并發(fā)微服務環(huán)境中,網(wǎng)絡性能往往成為K8s集群的瓶頸。本文將深入探討如何通過精細化的Linux內(nèi)核參數(shù)調(diào)優(yōu),讓你的K8s節(jié)點網(wǎng)絡性能提升30%以上。
    的頭像 發(fā)表于 08-06 17:50 ?957次閱讀

    如何配置和驗證Linux內(nèi)核參數(shù)

    Linux系統(tǒng)運維和性能優(yōu)化中,內(nèi)核參數(shù)(sysctl)的配置至關(guān)重要。合理的參數(shù)調(diào)整可以顯著提升網(wǎng)絡性能、系統(tǒng)穩(wěn)定性及資源利用率。然而,僅僅修改參數(shù)是不夠的,如何驗證這些參數(shù)是否生效同樣關(guān)鍵。
    的頭像 發(fā)表于 05-29 17:40 ?1157次閱讀

    Linux內(nèi)核編譯失???移動硬盤和虛擬機的那些事兒

    Linux開發(fā)中,編譯內(nèi)核是一項常見任務,但不少開發(fā)者在移動硬盤或虛擬機環(huán)境下嘗試時會遭遇失敗。本文將簡要探討這些問題的成因,并介紹一些虛擬機使用技巧,幫助大家更好地應對相關(guān)問題。在移動硬盤里編譯
    的頭像 發(fā)表于 04-11 11:36 ?994次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>編譯失?。恳苿佑脖P和虛擬機的那些事兒

    樹莓派4 性能大比拼:標準Linux與實時Linux 4.19內(nèi)核的延遲測試

    引言本文是對我之前關(guān)于RaspberryPi3同一主題的帖子的更新。與之前的帖子一樣,我使用的是隨Raspbian鏡像提供的標準內(nèi)核,以及應用了RT補丁的相似內(nèi)核版本。對于實時版,我
    的頭像 發(fā)表于 03-25 09:39 ?815次閱讀
    樹莓派4 性能大比拼:標準<b class='flag-5'>Linux</b>與實時<b class='flag-5'>Linux</b> 4.19<b class='flag-5'>內(nèi)核</b>的延遲測試