1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Workqueues and Kevents</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux Device Drivers"><link rel="up" href="Basics.html" title="Chapter 1. Driver Basics"><link rel="prev" href="API-schedule-hrtimeout.html" title="schedule_hrtimeout"><link rel="next" href="API-work-pending.html" title="work_pending"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Workqueues and Kevents</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-schedule-hrtimeout.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Driver Basics</th><td width="20%" align="right"> <a accesskey="n" href="API-work-pending.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id-1.3.7"></a>Workqueues and Kevents</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="refentrytitle"><a href="API-work-pending.html"><span class="phrase">work_pending</span></a></span><span class="refpurpose"> — 2 Find out whether a work item is currently pending 3 </span></dt><dt><span class="refentrytitle"><a href="API-delayed-work-pending.html"><span class="phrase">delayed_work_pending</span></a></span><span class="refpurpose"> — 4 Find out whether a delayable work item is currently pending 5 </span></dt><dt><span class="refentrytitle"><a href="API-alloc-workqueue.html"><span class="phrase">alloc_workqueue</span></a></span><span class="refpurpose"> — 6 allocate a workqueue 7 </span></dt><dt><span class="refentrytitle"><a href="API-alloc-ordered-workqueue.html"><span class="phrase">alloc_ordered_workqueue</span></a></span><span class="refpurpose"> — 8 allocate an ordered workqueue 9 </span></dt><dt><span class="refentrytitle"><a href="API-queue-work.html"><span class="phrase">queue_work</span></a></span><span class="refpurpose"> — 10 queue work on a workqueue 11 </span></dt><dt><span class="refentrytitle"><a href="API-queue-delayed-work.html"><span class="phrase">queue_delayed_work</span></a></span><span class="refpurpose"> — 12 queue work on a workqueue after delay 13 </span></dt><dt><span class="refentrytitle"><a href="API-mod-delayed-work.html"><span class="phrase">mod_delayed_work</span></a></span><span class="refpurpose"> — 14 modify delay of or queue a delayed work 15 </span></dt><dt><span class="refentrytitle"><a href="API-schedule-work-on.html"><span class="phrase">schedule_work_on</span></a></span><span class="refpurpose"> — 16 put work task on a specific cpu 17 </span></dt><dt><span class="refentrytitle"><a href="API-schedule-work.html"><span class="phrase">schedule_work</span></a></span><span class="refpurpose"> — 18 put work task in global workqueue 19 </span></dt><dt><span class="refentrytitle"><a href="API-flush-scheduled-work.html"><span class="phrase">flush_scheduled_work</span></a></span><span class="refpurpose"> — 20 ensure that any scheduled work has run to completion. 21 </span></dt><dt><span class="refentrytitle"><a href="API-schedule-delayed-work-on.html"><span class="phrase">schedule_delayed_work_on</span></a></span><span class="refpurpose"> — 22 queue work in global workqueue on CPU after delay 23 </span></dt><dt><span class="refentrytitle"><a href="API-schedule-delayed-work.html"><span class="phrase">schedule_delayed_work</span></a></span><span class="refpurpose"> — 24 put work task in global workqueue after delay 25 </span></dt><dt><span class="refentrytitle"><a href="API-keventd-up.html"><span class="phrase">keventd_up</span></a></span><span class="refpurpose"> — 26 is workqueue initialized yet? 27 </span></dt><dt><span class="refentrytitle"><a href="API-queue-work-on.html"><span class="phrase">queue_work_on</span></a></span><span class="refpurpose"> — 28 queue work on specific cpu 29 </span></dt><dt><span class="refentrytitle"><a href="API-queue-delayed-work-on.html"><span class="phrase">queue_delayed_work_on</span></a></span><span class="refpurpose"> — 30 queue work on specific CPU after delay 31 </span></dt><dt><span class="refentrytitle"><a href="API-mod-delayed-work-on.html"><span class="phrase">mod_delayed_work_on</span></a></span><span class="refpurpose"> — 32 modify delay of or queue a delayed work on specific CPU 33 </span></dt><dt><span class="refentrytitle"><a href="API-flush-workqueue.html"><span class="phrase">flush_workqueue</span></a></span><span class="refpurpose"> — 34 ensure that any scheduled work has run to completion. 35 </span></dt><dt><span class="refentrytitle"><a href="API-drain-workqueue.html"><span class="phrase">drain_workqueue</span></a></span><span class="refpurpose"> — 36 drain a workqueue 37 </span></dt><dt><span class="refentrytitle"><a href="API-flush-work.html"><span class="phrase">flush_work</span></a></span><span class="refpurpose"> — 38 wait for a work to finish executing the last queueing instance 39 </span></dt><dt><span class="refentrytitle"><a href="API-cancel-work-sync.html"><span class="phrase">cancel_work_sync</span></a></span><span class="refpurpose"> — 40 cancel a work and wait for it to finish 41 </span></dt><dt><span class="refentrytitle"><a href="API-flush-delayed-work.html"><span class="phrase">flush_delayed_work</span></a></span><span class="refpurpose"> — 42 wait for a dwork to finish executing the last queueing 43 </span></dt><dt><span class="refentrytitle"><a href="API-cancel-delayed-work.html"><span class="phrase">cancel_delayed_work</span></a></span><span class="refpurpose"> — 44 cancel a delayed work 45 </span></dt><dt><span class="refentrytitle"><a href="API-cancel-delayed-work-sync.html"><span class="phrase">cancel_delayed_work_sync</span></a></span><span class="refpurpose"> — 46 cancel a delayed work and wait for it to finish 47 </span></dt><dt><span class="refentrytitle"><a href="API-execute-in-process-context.html"><span class="phrase">execute_in_process_context</span></a></span><span class="refpurpose"> — 48 reliably execute the routine with user context 49 </span></dt><dt><span class="refentrytitle"><a href="API-destroy-workqueue.html"><span class="phrase">destroy_workqueue</span></a></span><span class="refpurpose"> — 50 safely terminate a workqueue 51 </span></dt><dt><span class="refentrytitle"><a href="API-workqueue-set-max-active.html"><span class="phrase">workqueue_set_max_active</span></a></span><span class="refpurpose"> — 52 adjust max_active of a workqueue 53 </span></dt><dt><span class="refentrytitle"><a href="API-workqueue-congested.html"><span class="phrase">workqueue_congested</span></a></span><span class="refpurpose"> — 54 test whether a workqueue is congested 55 </span></dt><dt><span class="refentrytitle"><a href="API-work-busy.html"><span class="phrase">work_busy</span></a></span><span class="refpurpose"> — 56 test whether a work is currently pending or running 57 </span></dt><dt><span class="refentrytitle"><a href="API-work-on-cpu.html"><span class="phrase">work_on_cpu</span></a></span><span class="refpurpose"> — 58 run a function in user context on a particular cpu 59 </span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-schedule-hrtimeout.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="Basics.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-work-pending.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">schedule_hrtimeout</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">work_pending</span></td></tr></table></div></body></html> 60