| Function report | 
| Source Code: kernel\workqueue.c | Create Date:2022-07-28 09:26:57 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:lush_workqueue - ensure that any scheduled work has run to completion.*@wq: workqueue to flush* This function sleeps until all work items which were queued on entry* have finished execution, but it is not livelocked by new incoming ones.
Proto:void flush_workqueue(struct workqueue_struct *wq)
Type:void
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct workqueue_struct * | wq | 
| 2772 | If WARN_ON(!can kworkers be created yet? ) Then Return | 
| 2775 | lock_map_acquire( & lockdep_map) | 
| 2776 | lock_map_release( & lockdep_map) | 
| 2778 | mutex_lock( & protects this wq ) | 
| 2785 | If next_color != WQ: current flush color Then | 
| 2793 | WQ: current work color = next_color | 
| 2795 | If Not WQ: first flusher Then | 
| 2799 | WQ: first flusher = this_flusher | 
| 2808 | Else | 
| 2814 | Else | 
| 2825 | mutex_unlock( & protects this wq ) | 
| 2827 | wait_for_completion( & lush completion ) | 
| 2835 | If WQ: first flusher != this_flusher Then Return | 
| 2838 | mutex_lock( & protects this wq ) | 
| 2841 | If WQ: first flusher != this_flusher Then Go to out_unlock | 
| 2844 | WQ: first flusher = NULL | 
| 2849 | When (true) cycle | 
| 2854 | If WQ: flush color waiting for != WQ: current flush color Then Break | 
| 2857 | complete( & lush completion ) | 
| 2860 | WARN_ON_ONCE(!list_empty - tests whether a list is empty*@head: the list to test. && WQ: current flush color != work_next_color(WQ: current work color )) | 
| 2867 | If Not list_empty - tests whether a list is empty*@head: the list to test. Then | 
| 2886 | Break | 
| 2897 | WQ: first flusher = next | 
| 2906 | WQ: first flusher = NULL | 
| 2909 | out_unlock : | 
| 2910 | mutex_unlock( & protects this wq ) | 
| Name | Describe | 
|---|---|
| drain_workqueue | drain_workqueue - drain a workqueue*@wq: workqueue to drain* Wait until the workqueue becomes empty. While draining is in progress,* only chain queueing is allowed. IOW, only currently pending or running | 
| __test_cycle | |
| stress | |
| cgroup1_pidlist_destroy_all | Used to destroy all pidlists lingering waiting for destroy timer. None* should be left afterwards. | 
| cpuset_post_attach | |
| cpuset_write_resmask | Common handling for a write to a "cpus" or "mems" file. | 
| flush_scheduled_work | lush_scheduled_work - ensure that any scheduled work has run to completion.* Forces execution of the kernel-global workqueue and blocks until its* completion.* Think twice before calling this function! It's very easy to get into | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |