179 lines
9.8 KiB
Markdown
179 lines
9.8 KiB
Markdown
# 乙卷·天道诸劫(Kernel/法则层)·八回
|
||
|
||
## 第一回 天怒一降万物寂 判词如碑刻穹苍(Kernel Panic 雷劫)
|
||
|
||
**天道判词**
|
||
|
||
> 一线天心忽自裂,万法俱空夜色长。
|
||
> 雷书不为凡情改,断处回溯是遗章。
|
||
|
||
**渡劫段落模板**
|
||
却说洞府上界忽现异光,先是软锁如缚、RCU 如喘,继而天幕一黑,万物齐寂。串口与屏幕留下一道道栈回溯,似天道亲手刻碑:哪一处法则被触怒,哪一处经脉已崩塌。主角知此非人界小祸,乃天怒之雷;若无后手(kdump/pstore/netconsole)存得雷痕,便只能在黑暗里猜。待捧得“天书残页”(oops trace + vmlinux 符号),方可循章溯源,寻得那一粒致命的魔种。
|
||
|
||
---
|
||
|
||
## 第二回 天锁既成群雄困 万力齐施也不行(死锁与锁竞争劫)
|
||
|
||
**天道判词**
|
||
|
||
> 锁锁相扣成天网,英雄到此亦低头。
|
||
> 非关气短功不济,只怪因循结旧愁。
|
||
|
||
**渡劫段落模板**
|
||
那日主角修为已至化境,偏偏一动便觉寸步难行:吞吐如坠深井,火焰图上尽是锁影与 futex 哀鸣。更有 hung task 警示如冷风穿堂,似有天锁将众生绑在一处。此劫不靠蛮力,靠改道——分片、减共享、缩临界、定锁序;再以 lockdep/perf lock 或 eBPF 观锁魂,查谁持锁如抱丹不放。若只在旧锁外再加新锁,便是以绳缚绳,越缚越死。
|
||
|
||
---
|
||
|
||
## 第三回 宽限不至天机滞 一念不让万界迟(RCU Stall 劫)
|
||
|
||
**天道判词**
|
||
|
||
> 宽限如潮终须至,有人不退便成灾。
|
||
> 一念长执遮天道,万灵齐等夜徘徊。
|
||
|
||
**渡劫段落模板**
|
||
忽闻上界传来警示:RCU stall。众人初不解其意,只觉洞府像被定身——并非全死,却处处拖慢。主角知 RCU 之道在“众生皆须一让”,宽限期方能过去;若有人在临界之地久不放手(禁抢占/关中断/长临界),便如以一念遮天,令天机停滞。于是他循迹追索:是哪个路径占着天道不肯让步;用 tracepoint/ftrace 或 eBPF 观其停滞之时长,斩断那段过长的执念,宽限潮水方能再度回流。
|
||
|
||
---
|
||
|
||
## 第四回 天刑巡夜锁魂急 软硬皆判不容情(Soft/Hard Lockup 劫)
|
||
|
||
**天道判词**
|
||
|
||
> 看门神犬昼夜巡,久不应声便是刑。
|
||
> 软判尚留回头路,硬裁一落断今生。
|
||
|
||
**渡劫段落模板**
|
||
却说洞府里忽现“watchdog”谕令:soft lockup 先鸣,似告诫“尚可回头”;若仍不醒,hard lockup 便如重锤,直接裁决。其因多在某核久不调度、久不应钟:或长循环不让出,或关中断太久,或锁劫缠身。主角若要破此天刑,须先分清是“应钟不灵”还是“被天锁困死”,再沿调度与中断之线追到源头。此劫最忌以为“偶发无妨”,因为天刑巡夜,第二次往往更重。
|
||
|
||
---
|
||
|
||
## 第五回 仙骨暗腐无声噬 瓦解从来不见刀(SLAB 泄漏劫)
|
||
|
||
**天道判词**
|
||
|
||
> 不见刀兵见骨瘦,仙骨空空自成伤。
|
||
> 一滴一滴吞灵去,回头已是万山荒。
|
||
|
||
**渡劫段落模板**
|
||
有一类天道劫最阴:洞府表面风平浪静,内里仙骨(slab)却在悄悄变薄。主角只觉可用之物日渐稀少,却在用户态查不出分毫端倪;原来吞灵者藏在内核堆里,拿了对象不还,或引用不断。此时须翻开 slab 之谱(/proc/slabinfo、slabtop 等),看哪一族缓存增长如草;再借调试护体(如 KASAN/trace)追其来路。此劫最适合写“慢性心魔”:不痛不响,却把寿元一点点掏空,直到突然引爆更大的天罚。
|
||
|
||
---
|
||
|
||
## 第六回 回收成狂无寸进 吐纳千回亦枉然(回收活锁/Thrashing 劫)
|
||
|
||
**天道判词**
|
||
|
||
> 吐纳千回仍见空,回收无功反自穷。
|
||
> 脏潮未退砂仍碎,一劫牵连百劫重。
|
||
|
||
**渡劫段落模板**
|
||
忽然之间,洞府像中了“反复吐纳”的邪咒:CPU 忙得团团转,回收与压缩不断,却换不来真正的可用灵气。主角一看便知是回收活锁:脏页回写不畅、碎片化顽固、高阶需求不停,三者互相牵扯,吐纳越急越乱。要破此劫,须先退脏潮(稳回写水位),再治碎砂(减连续分配/调整 THP/compaction 行为),最后把吞灵之源关进界内(cgroup 限制)。若只加大回收力度,等同逼人强行运功,往往先把自己累死。
|
||
|
||
---
|
||
|
||
## 第七回 天时不与英才绝 饥饿一至万念空(调度饥饿/优先级反转劫)
|
||
|
||
**天道判词**
|
||
|
||
> 天时若偏千般巧,英雄无用也成愁。
|
||
> 一高一低相牵制,反转回环断去留。
|
||
|
||
**渡劫段落模板**
|
||
此劫来时,最像“被天命冷落”:有的生灵明明该动,却久久得不到一丝天时;有的却霸占时辰,行走如风。其因或在优先级反转,或在实时之法被滥用,或在绑核/配额使天时偏斜。主角若要破关,须把“谁拿走了天时”查得明白——从调度观测入手(perf/ftrace 的调度轨迹),再调回天秤:让不该独占的归还,让该得到片刻的得片刻。此劫最适合写“强者受困”:不是修为不够,而是天时不与。
|
||
|
||
---
|
||
|
||
## 第八回 大页似舟翻作浪 塑脉成灾震一城(THP/Compaction 震荡劫)
|
||
|
||
**天道判词**
|
||
|
||
> 大页原为渡劫舟,碎浪翻时反作仇。
|
||
> 强塑经脉天地颤,一震三惊不肯休。
|
||
|
||
**渡劫段落模板**
|
||
有宗门喜用“透明大页”以求气机通畅,奈何洞府经脉碎时,大舟反成浪。THP 与 compaction 一旦频繁出手,便像强行塑脉,震得人界一阵阵抽搐。主角若要止震,不能只喊“关或开”,须先观其震源:究竟是分配模式碎、还是高阶需求逼迫,抑或内存压力把 compaction 推到前台。待查明后,或调 THP 策略、或改分配形态、或把高阶需求移道,方能令洞府不再“每逢塑脉便震三震”。
|
||
|
||
---
|
||
|
||
# 乙卷·天道诸劫(Kernel/法则层)·案牍注解(旁批)
|
||
|
||
## 第一回 Kernel Panic 雷劫 — 案牍注解
|
||
|
||
* **“天怒(panic)”**:法则自知不可续,遂令万物归零;非人界可挽。
|
||
* **“oops trace”**:天道失手时的血书,最可贵者在“调用之链”,非在最后一句。
|
||
* **“kdump / pstore / netconsole”**:留雷痕之法;无痕则无从问罪,无从破关。
|
||
* **“vmlinux 符号”**:解碑文之钥;无符号则碑上皆是天书。
|
||
|
||
---
|
||
|
||
## 第二回 死锁与锁竞争劫 — 案牍注解
|
||
|
||
* **“死锁”**:两法相制,各不相让;多因锁序错、临界长、交错取。
|
||
* **“锁竞争”**:非死亦苦;众生争一门,门虽开却一人一入。
|
||
* **“futex”**:人界与天道相接之锁门;火焰图见其影,常是瓶颈明证。
|
||
* **“lockdep”**:锁狱簿册,记诸锁因果;启之可见天网,亦耗灵气。
|
||
* **“perf lock / eBPF 观锁”**:量其持锁之时、争锁之众,方能对症下药。
|
||
|
||
---
|
||
|
||
## 第三回 RCU Stall 劫 — 案牍注解
|
||
|
||
* **“RCU”**:以“先行后补”换读之畅;其要在“宽限期”(grace period)。
|
||
* **“stall”**:宽限不至;多因有人久不让步(长临界、禁抢占、关中断)。
|
||
* **“synchronize_rcu”**:求宽限之令;若久不应,便知天机受阻。
|
||
* **“tracepoint / ftrace”**:观“谁不让步”的照妖镜;寻得元凶,劫自可解。
|
||
|
||
---
|
||
|
||
## 第四回 Soft/Hard Lockup 劫 — 案牍注解
|
||
|
||
* **“watchdog”**:巡夜官也;久不闻钟,便判“天道凝死”。
|
||
* **“soft lockup”**:尚能喘息,或可回头;多见于长计算/长禁抢占。
|
||
* **“hard lockup”**:钟声不入,往往更凶;常因关中断过久或死锁入骨。
|
||
* **“NMI”**:天道外使,强行探查诸核;其至则判词多可信。
|
||
* **“应钟”**:调度与中断之应答;失其应,则天刑必下。
|
||
|
||
---
|
||
|
||
## 第五回 SLAB 泄漏劫 — 案牍注解
|
||
|
||
* **“slab / kmalloc”**:天道用器之库;对象如砖,取用当归还。
|
||
* **“泄漏”**:取而不还,或引用不断;阴毒在无声无息。
|
||
* **“/proc/slabinfo”**:仙骨谱;看哪一族缓存肥长异常,即知吞灵所在。
|
||
* **“KASAN”**:护体罡气,专照越界与破坏;重则耗灵,轻则救命。
|
||
* **“模块/驱动”**:最常藏魔处;旁门法器多,归还之道杂。
|
||
|
||
---
|
||
|
||
## 第六回 回收活锁/Thrashing 劫 — 案牍注解
|
||
|
||
* **“reclaim”**:回收使者之行;本为救急,久行则耗命。
|
||
* **“direct reclaim”**:众生自下场回收,故万事皆慢;此乃“逼人强行运功”。
|
||
* **“thrashing”**:吐纳无功、往复空转;常与脏页、碎片、高阶分配互为因果。
|
||
* **“kswapd”**:回收行者;其忙与不忙,皆可作天象判读。
|
||
* **“cgroup memory”**:小洞天之界;先圈祸源,后谈根治。
|
||
|
||
---
|
||
|
||
## 第七回 调度饥饿/优先级反转劫 — 案牍注解
|
||
|
||
* **“starvation”**:天时不至;非死却比死更磨人。
|
||
* **“优先级反转”**:低者握钥,高者久候;天时虽在,因果却倒。
|
||
* **“RT(实时)”**:夺时之术;用之不慎,众生皆贫天时。
|
||
* **“CPU 绑核/配额”**:天时分封之法;封得不均,则一洲富、一洲饥。
|
||
* **“sched trace”**:天时簿;看谁得时、谁失时,方能正其偏。
|
||
|
||
---
|
||
|
||
## 第八回 THP/Compaction 震荡劫 — 案牍注解
|
||
|
||
* **“THP”**:透明大页;本欲通脉,脉碎则舟翻。
|
||
* **“compaction”**:强塑经脉以求连续;频繁则震,震久则伤。
|
||
* **“高阶页”**:大器之材;需连续之地,故最怕碎片。
|
||
* **“震荡”**:多非单点之罪,常是分配形态与压力策略相冲。
|
||
* **“取舍”**:THP 关开皆非究竟,先观其震源,再定其法度。
|
||
|
||
---
|
||
|