-
Notifications
You must be signed in to change notification settings - Fork 0
M9 Parts X and XI: writing kernel code, and debugging it #10
Copy link
Copy link
Open
Labels
area/debuggingOops reports, KASAN, lockdep, drgn, fault injection and syzbotOops reports, KASAN, lockdep, drgn, fault injection and syzbotarea/driversThe driver model, modules, sysfs and debugfsThe driver model, modules, sysfs and debugfskind/corpusA recorded trace, snapshot, oops or BTF dump the lessons are graded againstA recorded trace, snapshot, oops or BTF dump the lessons are graded againstkind/milestoneA milestone checklist, tracking the issues that close itA milestone checklist, tracking the issues that close itpriority/p1Needed for the current milestone but not blocking todayNeeded for the current milestone but not blocking today
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
area/debuggingOops reports, KASAN, lockdep, drgn, fault injection and syzbotOops reports, KASAN, lockdep, drgn, fault injection and syzbotarea/driversThe driver model, modules, sysfs and debugfsThe driver model, modules, sysfs and debugfskind/corpusA recorded trace, snapshot, oops or BTF dump the lessons are graded againstA recorded trace, snapshot, oops or BTF dump the lessons are graded againstkind/milestoneA milestone checklist, tracking the issues that close itA milestone checklist, tracking the issues that close itpriority/p1Needed for the current milestone but not blocking todayNeeded for the current milestone but not blocking today
Roughly eighteen weeks. Fifteen lessons, W01 to W08 and B01 to B07. Pass 3 begins, and the reader stops reading kernel code and starts writing it.
Part X is writing kernel code. A module, an interface to userspace, allocation under the right constraints, locking your own data, kernel style C, KUnit, and the same module again in Rust. Part XI is debugging it, which is the half of kernel work that no book teaches directly and every kernel developer spends most of their time on.
The failure corpus is the sleeper deliverable in this milestone. Real recorded oopses, lockdep splats, KASAN reports, hung tasks and RCU stalls, curated and versioned. Nobody publishes one. Producing crashes on demand is harder than it sounds and it will take longer than the estimate suggests, and it is worth it, because reading a stack trace is a mechanical teachable skill that readers are currently left to pick up by accident.
Exit criterion. A reader can write, test and debug a module, and can find an injected bug in a supplied kernel with no hint, using traces, KASAN, lockdep and bisection.
Part X, writing kernel code
Part XI, debugging and forensics
Everything else
OopsReaderandKasanReportwidgets