## 自我介紹 * 姓名: 邱冠維 Kuan-Wei Chiu * 常用 ID: visitorckw * 學歷 * 國立陽明交通大學 資訊科學與工程研究所 碩二 * 國立成功大學 資訊工程學系 畢業 * 國立成功大學 工業與資訊管理學系 輔修 畢業 * 實習經歷 * Yahoo - Search & Ads Engineering Intern * Logitech - Embedded Software Engineering Intern * Google - Software Engineering Intern * AMD - Firmware Intern * Open Source 貢獻經驗 * 參與 Linux 核心開發約 1.5 年共 80+ patches 被收錄 * 參與 rv32emu 貢獻約 80 個 commits * 修正過 glibc, newlib 的數個 bug 並獲得 CVE 編號 * 其它經歷 * 2021 ICPC 台北站銅獎 ## Linux 核心貢獻經驗 ### 我的第一個 patch - 第一個 [patch](https://lore.kernel.org/lkml/20230902164121.2653109-1-visitorckw@gmail.com/) 是修正 document 中的文法錯誤 - 第一個更改程式碼的 [patch](https://lore.kernel.org/r/20230926173736.1142420-1-visitorckw@gmail.com) 是修正 thermal tool 之中的 NULL pointer dereference 以及 memory leak - 第一個更改 kernel space 程式碼的 [patch](https://lore.kernel.org/all/20231013175714.2142775-1-visitorckw@gmail.com/) 是透過 binary search 來優化效率 ### 做出更大的貢獻 - 優化 min heap 效率 - [減少 heapify 操作中所需要的比較次數 50%](https://lkml.kernel.org/r/20240110081213.2289636-3-visitorckw@gmail.com) - [利用 bitwise trick 設計不需要除法指令並且 branchless 的 parent() 函式](https://lkml.kernel.org/r/20241020040200.939973-3-visitorckw@gmail.com) - [加強 API 的型別安全,避免使用 void * 以及強制型別轉換](https://lkml.kernel.org/r/20240524152958.919343-5-visitorckw@gmail.com) - [提供 inline vs non-inline 版本的 API 以應對不同子系統的需求](https://lkml.kernel.org/r/20241020040200.939973-2-visitorckw@gmail.com) - [提供預設的 swap 函式減少 retpoline 所帶來的效率衝擊](https://lkml.kernel.org/r/20241020040200.939973-4-visitorckw@gmail.com) - 優化 lib/sort 排序演算法的效率 - [使用 double-pop 版本的 heapsort 減少資料搬動的次數](https://lkml.kernel.org/r/20240113031352.2395118-3-visitorckw@gmail.com) - [優化 sift-down 過程中遇到相同元素時的選擇](https://lkml.kernel.org/r/20240113031352.2395118-2-visitorckw@gmail.com) - [優化最後 2~3 個元素的排序行為並減少處理器需要的分支預測](https://lkml.kernel.org/r/20240527203011.1644280-4-visitorckw@gmail.com) - [改進 sort 相關的文件敘述](https://lkml.kernel.org/r/20250106170104.3137845-2-visitorckw@gmail.com) - lib/sort 的後續議題 - [發現 AMD 處理器上沒有正常進入休眠模式造成電池快速耗盡](https://lore.kernel.org/lkml/20240701205639.117194-1-visitorckw@gmail.com/) - [發現 ASUS 筆電上耳麥無法正常偵測](https://lore.kernel.org/lkml/20250128165415.643223-1-visitorckw@gmail.com/) - 相關議程連結 - [2025 sitcon](https://sitcon.org/2025/agenda/16f9e9/) - [2024 coscup](https://coscup.org/2024/zh-TW/session/VKSHDK) - [2024 OSS-NA](https://ossna2024.sched.com/event/1aBN5/refining-data-structure-implementations-in-the-linux-kernel-for-improved-performance-jim-huang-national-cheng-kung-university-kuan-wei-chiu-national-yang-ming-chiao-tung-university) ### 從競技程式到 Linux 開發 - 不再是寫程式給機器看,而是寫給人看並且要說服別人 - 不再只是顧慮演算法複雜度,也需要顧慮其他實務考量 ### 成為 maintainer - min heap 沒有對應的維護者,並且 90% 以上的變更來自我 - 在 Andrew Morton 的同意之下,開始負責維護 min heap 程式碼 - 過去做為普通的開發者,我信任維護者會在我犯錯時告知我 - 作為維護者時,我需要在第一線做出判斷並回覆 - 除了技術上的 "對" 與 "錯" 之外,還需要決定方向 - 我拒絕了開發者提出引入動態 array 的要求 ## 參與 Open Source 的好處 - 許多任職於國際知名公司的高手免費教你寫程式 - 比起學歷之外,更能夠展現你的專業技能 - 許多主管經常遇到大量履歷都只有修課與 AI 相關的經驗 - 我因此在 Google team match 階段獲得青睞 ## 對第一次貢獻 Linux 的建議 - 務必仔細閱讀 [Submitting patches: the essential guide to getting your code into the kernel](https://docs.kernel.org/process/submitting-patches.html) !!! - maybe 可以修錯字 -> 但不同維護者的接受程度不同 - 可以善用靜態分析工具 - 此類工具容易出現 false positive - 務必自己人工仔細 trace 完相關的程式碼 - 不要在 commit message 中只寫我用 XXX 工具發現問題並修正 ! - 請在 commit message 中完整分析問題成因、會對哪些 user 造成多大的問題等等 - 相關工具: cppcheck, coverity scan - 從 Jserv 老師課堂考試或作業中尋找貢獻機會 - [bitops: Optimize fns() for improved performance](https://lore.kernel.org/lkml/20240502092443.6845-3-visitorckw@gmail.com/)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up