Wait-for-completion wait for a once-off event e.g. a data structure to be initialized by another thread. They are built on top of the existing waitqueue infrastructure. The kernel documentation describing them is very good kernel.org/doc/Documentation/scheduler/completion.txt