Completion events Completion events handle the 'wait for X to happen' situation Introduced in 2.4.7 Better performance than semaphores, without races Creating a completion: struct completion event; init_completion(&event); To wait: wait_for_completion(&event); To signal completion: complete(&event);