函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\io-wq.c Create Date:2022-07-29 10:55:41
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:io_wqe_enqueue

函数原型:static void io_wqe_enqueue(struct io_wqe *wqe, struct io_wq_work *work)

返回类型:void

参数:

类型参数名称
struct io_wqe *wqe
struct io_wq_work *work
738  acct等于io_work_get_acct(wqe, work)
747  如果此条件成立可能性小(为编译器优化)(!io_wq_can_queue(wqe, acct, work))则
748  flags或等于IO_WQ_WORK_CANCEL
749  func( & work)
750  返回
753  spin_lock_irqsave( & lock, flags)
754  wq_list_add_tail( & list, & work_list)
755  flags与等于IO_WQE_FLAG_STALLED的反
756  spin_unlock_irqrestore( & lock, flags)
758  如果非atomic_read( & nr_running)则We need a worker. If we find a free one, we're good. If not, and we're* below the max number of workers, wake up the manager to create one.
调用者
名称描述
io_wq_enqueue
io_wq_enqueue_hashedEnqueue work, hashed by some key. Work items that hash to the same value* will not be done in parallel. Used to limit concurrent writes, generally* hashed by inode.
io_wq_flushDoesn't wait for previously queued work to finish. When this completes,* it just means that previously queued work was started.