函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:io_ring_ctx_wait_and_kill

函数原型:static void io_ring_ctx_wait_and_kill(struct io_ring_ctx *ctx)

返回类型:void

参数:

类型参数名称
struct io_ring_ctx *ctx
4998  mutex_lock( & uring_lock)
4999  percpu_ref_kill - drop the initial ref*@ref: percpu_ref to kill* Must be used to drop the initial ref on a percpu refcount; must be called* precisely once before shutdown.* Switches @ref into atomic mode before gathering up the percpu counters
5000  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
5009  if using sq thread polling 且非wq_has_sleeper - check if there are any waiting processes*@wq_head: wait queue head* Returns true if wq_head has waiting processes* Please refer to the comment for waitqueue_active.循环
5010  cpu_relax()
5012  io_kill_timeouts(ctx)
5013  io_poll_remove_all(ctx)
5015  如果 IO offload io_wq_cancel_all( IO offload )
5018  We can't just wait for polled events to come to us, we have to actively* find and complete them.
5020  如果ringsReturns true if there are no backlogged entries after the flush
5022  wait_for_completion: - waits for completion of a task*@x: holds the state of this particular completion* This waits to be signaled for completion of a specific task. It is NOT* interruptible and there is no timeout.* See also similar routines (i
5023  io_ring_ctx_free(ctx)
调用者
名称描述
io_uring_release
io_uring_create