October 2017
Intermediate to advanced
354 pages
9h 28m
English
Workqueues (wqs) are mechanisms for the execution of asynchronous process context routines. As the name aptly suggests, a workqueue (wq) is a list of work items, each containing a function pointer that takes the address of a routine to be executed asynchronously. Whenever some kernel code (that belongs to a subsystem or a service) intends to defer some work for asynchronous process context execution, it must initialize the work item with the address of the handler function, and enqueue it onto a workqueue. The kernel uses a dedicated pool of kernel threads, called kworker threads, to execute functions bound to each work item in the queue, sequentially.