waitqueue-completion-synchronization
Installation
SKILL.md
Waitqueues & Completion Synchronization
Rules for blocking kernel paths that wait on events: the wait_event
family, wake_up variants, and completions. Load references/README.md
before writing a wait/wake or complete/wait_for_completion path.
When to use
- Writing or reviewing code that blocks until a condition becomes true:
wait_event,wait_event_interruptible,wait_event_timeout,wait_event_killable. - Waking blocked waiters with
wake_up,wake_up_interruptible,wake_up_all,wake_up_poll,__wake_up. - One-shot event signaling with
complete,complete_all,wait_for_completion,wait_for_completion_interruptible,wait_for_completion_timeout. - Debugging hangs, lost wakeups, or spurious-wakeup bugs in drivers, block layers, and protocol state machines.
- Deciding whether a waiter needs a waitqueue or a completion.