分享到plurk 分享到twitter 分享到facebook

版本 2d79caf1147f4e07a648b67cb3e9174ca4df57d2

c8763yee (徐彥翔)

簡介

2026 Linux 核心設計 春季班 自我評量

本份自我評量遵循 課程自我評量指引 的書寫規範,避免「期許自己」、「已盡最大努力」等空泛承諾,所有產出皆附對應的公開軌跡 (Linux 上游 patch、GitHub PR、HackMD 開發紀錄、會議錄影)。各項自評分數皆為 1 到 10 的整數,最末以幾何平均計算總分並適用方案 B。

成果發表與貢獻

9 分

Kernel patch (Trivial)

我在閱讀 AMD IBS 相關程式碼時發現其在 arch/x86/include/asm/amd/ibs.h:80 中 bit-field 註解中 bit 範圍標示錯誤 (正確的範圍應該是 16-31),考慮到可能有開發者被註解誤導 bit-field 範圍,因此「路見不平,拿 Patch 來補」,發送了第一個 Linux kernel patch。

該 Patch 於 2026/03/06 合併入 tip tree 中的 perf/core 分支,並在 2026/04/14 於 7.1 的 Merge window 中合併入主線

教材修改

公開演講

作業與隨堂測驗

7 分

作業

隨堂測驗

由於部份測驗未收到表單回覆回條,因此僅列出有收到回條的測驗與其成績(未標記分數的測驗以「回答正確數/題目數」標記)。

  • 期初考最高成績:41 分
  • 第 6 週測驗題:70 分
  • 第 8 週測驗題:17 / 29
  • 第 10 週測驗題:34 / 35
  • 第 13 週測驗題:12 / 15
  • 第 15 週測驗題:16 / 18

課程初期由於可以上網查資料與本地撰寫執行程式,因此做題目時偏向直接從對應 Linux 核心程式碼與撰寫 Python 程式計算,導致的結果就是來不及做完全部題目。不過在課程期間由於對 C 語言規格的重視,使得後續測驗成績逐漸提昇。在後續授課教師與其他學生的問答也開始往問題的本質思考。

期末專題

5 分

未完成期末專題,由於無法說明 MGLRU 本身對 Linux 核心於個人電腦的改善,因此未登記於課程期末專題

題目:針對 MGLRU 的 refault feedback loop 統計 (PID Controller) 根據 Generation 存活時間衰減歷史權重。

本題目對照於 Yu Zhao 在 [PATCH mm-unstable v15 06/14] mm: multi-gen LRU: minimal implementation 中 refault feedback loop 部份程式提到的 Future optimizations(vmscan.c:3144-3146)

\[S_{new} = \frac{S_{old}}{\Delta t}+\frac{\Delta t-1}{\Delta t}x_t\] \(\Delta t = jiffies-lrugen_{ts}[Gen_{min}]\)

開發紀錄:Github

在進行期末專題時我發現我會時常把問題與架構想得太複雜,導致後續花費過多時間在處理 Userspace 模擬架構本身以及觀察 MGLRU 相較於 Active/Inactive list 的具體改善指標。

尚未釐清的是:我無法區分 Yu zhao 當初設計 Refault feedback loop 時省略 D term 是否基於雜訊考量的刻意設計,且上述推測在 MGLRU 對應檔案的 commit message 與 LKML 討論中均無明文佐證。

與授課教師的互動

7 分

一對一討論共 2 次、課堂問答(進行議題後續追蹤) 2 次、課後討論 2 次,根據日期排序。

課堂問答軌跡

一對一討論

具體紀錄請參考 2026 Linux 核心設計行事曆 中標記 一對一討論:c8763yee 的活動

  • 2026/04/27:第一次一對一討論:詢問期末專題題目方向

在本次一對一時被問到如何使用位元運算來實作浮點數除二,當時由於對 IEEE 754 格式的過度思考如何處理 Infinity 與 NaN 導致在實作與說明思路時無法準確說明,甚至把 exponent 的位數說成 10 位。

會後被要求將針對 Infinity/Nan 的 special case 檢查去除,與改用避免 UB/IB 的 union 實作來取代當下使用的 memcpy (Follow up 紀錄)

  • 2026/05/15:第二次一對一討論:回報期末專題相關研究發現

所見所聞所感

9 分

〈因為自動飲料機而延畢的那一年〉 心得: > 為什麼會出問題呢?因為這裡是他媽的真實世界啊。 > 大多數人一直活在本來就應該這樣嗎的童話世界裡,電視打開就可以看,機車買來就可以騎,手機買來就可以用,一切都理所當然,本來就應該這樣。偶爾買到不好用的商品我們就抱怨幾句,丟掉換其他更好用的牌子,卻很少意識到那個本來就該這樣,背後需要經過多少人月的投入與研發。

關於數學與謹慎用詞

一開始因為就學期間忽略數學的重要性,導致光是在進行作業一的「探討〈解讀計算機編碼〉」題組時在補充缺失的數論知識就花了 3 天,因此導致後面只能針對程式語言的題目進行作答,同時持續補充之前沒學好的數學知識。這樣的結果是在第三次作業時只能先紀錄閱讀教材時的發現與問題。

不過也是在進行作業撰寫時開始注重詞彙的使用,帶來的影響是在撰寫文章時,針對文章中可能有岐義的漢語用詞主動查詢資訊科技詞彙翻譯與使用 zhtw-mcp 檢查資訊科技詞彙翻譯中未提到的部份用語。因此意外發現不明使用者使用 AI 「抄襲」 zhtw-mcp GitHub repo 這件事並沒有那麼簡單,該使用者還在 repo 中放入病毒檔案並在 README.md 引導下載。 (Hexastrike 對於類似案例中攻擊行為的分析)。

關於與上游開發者互動

第一次送出 LKML patch 時, Borislav Petkov 直接退回 Commit 並指出 Commit 訊息太過繁瑣的問題。修正 Commit 訊息後發布 v2 patch。不過後續即杳無音訊。在第二周課後向授課教師詢問相關問題時得知 maintainer 對於這種 trivial patch 不會太重視,並告知我可以向邱冠維詢問相關的問題。

This just fixes the misleading comment. No functional changes.

s/This just fixes/Fix/

關於自身投入的回顧

即使只是修改 Typo 或是用語,但畢竟「勿以善小而不為」。 ## 分數計算

項次 名稱 分數
1 成果發表與貢獻 9
2 作業與隨堂測驗 7
3 期末專題 5
4 與授課教師的互動 7
5 所見所聞所感 9

幾何平均 (GEOMEAN) 計算 \[ GEOMEAN \ = \sqrt[5]{9 \times 7 \times 5 \times 7 \times 9} \ = 7.236527563504052 \]

驗算: \(| 7.236527563504052^5-(9 \times 7 \times 5 \times 7 \times 9)| \ll 1\), 符合定義

方案選擇: - 方案 B: 1 + floor(GEOMEAN) - 1 + floor(7.236527563504052) = 1 + 7 = 8

自我評量總分: 8 / 10