看板 Soft_Job 關於我們 聯絡資訊
我不知道本魯該不該算是個 Linux Kernel 開發者 我只有 submit 過 2 個很小的 patches 到 mainline,而且都不是核心 總之我主要做的事情都是 out of tree 的 我一開始接觸這塊 是因為工作上要求而自幹了一個 remote filesystem 那個時候就靠從 fs 相關 syscall 開始 trace code 進 VFS layer 然後看他跟各個 filesystem operations 如何搭上 我大概花了一個禮拜的時間做出一個可以 mount 的 prototype 然後再慢慢的把剩下的 syscall 相關的 operation 補上 那段時間我過的真的蠻充實的 我從完全沒有 Kernel 開發經驗 到 VFS 由裡到外弄懂 (很舊的版本 現在又變好多QQ) 還弄懂各種 Synchronizaion: ticket spinlock, mutex, wait_queue, RCU 還有各種 Debugging 技巧: 看懂 oops/decodecode, Magic sysrq, kexec/kdump 這些基本上都是我自學的 總之我目前主要參與的是 ZFS on Linux (還是filesystem相關...) 我目前主要都是一些bugfix 和支援新版 kernel 相容性為主 我最大的貢獻是改進ZFS 的 memory management 那個pull request 已經一年多了還沒merge 進去QQ 另外我有幾個race condition 的bugfix 也是令我滿自豪的 比如有一個存在已久跟 mutex 相關的 race/memory corrution 大家都摸不著頭緒是 被我解掉的 另外發一下牢騷,ZFS 因為是從 Solaris/Illumos porting 過來的 很多 API 都要包裝過,用在Linux 上往往都會有一些小問題要work around 然後他們的Lock ordering 非常的 sloppy,而且沒有註解清楚這些 Lock 到底是要保護 什麼,導致常常會有lock inversion deadlock 出現。 我常常腦海裏面都有砍掉重練的聲音,可是 ZFS 實在是太龐大的QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 50.135.204.227 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1449049236.A.C5B.html
beemos: 你絕對是啊! 12/02 17:58
dreamnook: 囧" 12/02 18:10
james732: 推強者 12/02 18:29
king19880326: 比較想知道這樣的程度薪水在台灣/美國可以開到多少 12/02 18:34
shortoneal: 我怎麼感覺我認識你.....XD 12/02 18:35
amatt: 這跟薪水只有間接關係 12/02 18:48
ggBird: 強者,可以分享deadlock 的除錯經驗嗎? 12/02 19:08
解 deadlock 也沒有什麼特殊技巧,就是運用現有的工具像 softlockup, hardlockup detector, hung task detector,有了這些 deadlock 時多半會出現 問題 thread 的 call trace,再利用這些分析問題點在哪。如果沒有打開那些功能 也可以用 sysrq-l sysrq-w 之類的。 另外 Kernel 有內建強大的 Lock ordering 分析器 Lockdep。他可以動態建立各種 Lock class 之間的相依性,然後印出所有可能 deadlock 的地方。 可是因為 ZFS 沒有嚴謹的 Lock class ordering,所以一開 Lockdep 馬上就吐一對東西 出來,所以目前還沒辦法用在 ZFS 上。QQ
seebass: 實務上ZFS in Linux 還是不夠穩定,尤其在Ubuntu short t 12/02 20:49
seebass: erm 版本上 12/02 20:49
raix852: 推強者 小魯只有研究兩個月就沒再碰了 12/02 20:57
ahwater01: 快來看強者!! 12/02 21:07
onlywig: 跪求教我OOPS debug技巧 12/02 21:48
oops 也沒什麼特殊技巧,先把 "Code: 48 89 45 c8 0f ..." 這行 餵進 scripts/decodecode 就可以得到問題點的 assembly 對照到 source code,然後利用 register 的值就可以大概推出當時的 state。 剩下的就是根據問題的種類想辦法分析了
wens: 好強大... 12/02 22:50
wens: 不過pull request沒下文是怎樣 orz 12/02 22:51
也不算沒下文啦,這段時間我偶爾會更新一下,也有一些人有持續使用 只是說他動到的範圍太大,怕會影響跟 illumos 之間的流動性所以暫時還沒進去 這段 code illumos 也正在 porting 回去,所以應該可見的未來會進去吧... 話說你不是 maintainer 嗎? Maintainer 的等級不是比較高嗎?
RouterHsieh: 這種才是真正的kernel developer啊..XD 12/03 00:47
jily: 推強者! 12/03 09:46
dinos: 朝聖! 12/03 10:32
vn509942: 跪 12/03 12:50
※ 編輯: tuxoko (50.135.204.227), 12/03/2015 13:49:40
zaqimon: Linux kernel神人才懂 尤其那組語絕對不會是一行一行跑 12/03 16:18
zaqimon: 各種不同CPU平台 各種硬體 各種memory barrier最佳化... 12/03 16:20