Jayce 的共享記憶體

Linux fio 測試參數的眉眉角角

By Lin Chieh (Jayce) |  Oct 6, 2021  | Linux System Performance

  fio 是一個好用的合成 IO (Synthetic IO Workload) 產生器,我們經常用他來測試例如檔案系統或是 Disk 的 IO 效能等等,他有非常多可調參數,很多時候我們只是複製了某測試的參數就打,這在大多數情況可能是夠用的,但身為一個優秀的效能分析者,我們還是必須要知道 …

繼續閱讀

Kprobe Userspace Tool 使用筆記

By Lin Chieh (Jayce) |  Oct 4, 2021  | Linux Kernel

  kprobe 是一個輕量的 linux kernel 的除錯工具,他可以在不重新編譯核心的情況下追蹤一個函式的呼叫以及回傳,相當方便。kernel 內目前提供了三種類型的 probe,分別是 kprobe、kretprobe 以及 jprobe,三者都是基於類似的原理所實現的。

  詳細的技術原理 … 我也沒弄得那麼清楚 😜,有興趣的可以去看核心的技術說明手冊,會比我介紹清楚得多,這邊只簡單介紹好用工具。

繼續閱讀

Linux Kernel BUG_ON 傾印訊息分析及案例分享

By Lin Chieh (Jayce) |  Dec 4, 2019  | Linux Kernel

  前一陣子有追蹤一個 ARM 平台發生 Kernel BUG_ON 的問題,在同事的協助下花了一點時間終於追出可能的原因。在我剛開始接觸 Linux Kernel 時,遇到這類 log 都很不知道該如何下手,累積了一些經驗以後才慢慢知道該如何切入、分析及找出原因。

  這篇會分享實際分析 Kernel Oops log 的過程,以及相關工具的使用方式做為案例分析給各位參考。

繼續閱讀

[C++] 幾種在函數傳遞 Smart Pointer 的方式整理

By Lin Chieh (Jayce) |  Nov 3, 2019  | C/C++

  相較於其他程式語言,C++ 的函數參數傳遞方式有很多種方法,如傳值(value)、傳址(address/pointer),及傳參考(reference)等,再加上 const 修飾詞後又有不同的變化。

  C++11 引入的 unique_ptr 及 shared_ptr 等智慧指標,也同樣有傳值或傳參考等方式。雖然很多手段都可以達到相同目的,但如果透過傳遞方式的不同,就可以表現出函數設計者想傳達的「語意」,那一定會是比較好的設計,同時好的設計也能借助編譯器的輔助來降低程式出錯的機會。

  針對各種不同需求及使用情境,這篇整理我蒐集到的建議實作方式,主要源自於 C++ Core Guideline,提供給各位參考。

繼續閱讀

從 Jekyll 遷移到 Hugo 步驟心得分享

By Lin Chieh (Jayce) |  Oct 23, 2019  | 網站架設

  部落格從去年一月至今也快滿兩年了,中間一直有想修改部落格的樣板,經過一陣選擇與研究以後,決定連產生器也換掉試試看,於是就轉到了 Hugo。Hugo 是一個以 golang 為基礎開發的靜態網站產生器,他的建置速度很快,目前感覺他的操作指令以及目錄規劃也蠻乾淨好上手。這篇就筆記一下我從 jekyll 轉換到 hugo 的過程及一些重點。

繼續閱讀

Visual Studio Code Remote - WSL 安裝教學

By Lin Chieh (Jayce) |  Jul 13, 2019  | 開發環境

  最近在思考如何讓我的插件能夠跑在 WSL 裡面,後來發現了 Visual Studio Code Remote - WSL 這個好東西,它可以讓 VS Code Server 實際執行在 WSL 裡面,只留 UI 介面在 Windows。

  這對某些插件非常有用,因為有些東西跑在 Linux 環境是比較容易的。另外 Visual Studio Code Remote 系列還包含 Remote - SSH 模式,這東西就更猛了,如果你的 Build Machine 是遠端的 Linux Server ,他可以直接透過 SSH 跑在 Linux Server 端,像是檔案搜尋等動作,直接執行在遠端 Linux 就會比透過 Samba 或 NFS 快上很多。

繼續閱讀