函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Returns true if there are no backlogged entries after the flush

函数原型:static bool io_cqring_overflow_flush(struct io_ring_ctx *ctx, bool force)

返回类型:bool

参数:

类型参数名称
struct io_ring_ctx *ctx
boolforce
766  rings等于rings
770  LIST_HEAD(list)
772  如果非force
773  如果链表为空且不修改则返回:true
775  如果cached_cq_tailREAD_ONCE(head)恒等于Ring sizes (constant, power of 2) 则返回:false
780  spin_lock_irqsave( & completion_lock, flags)
783  如果forcecq_overflow_flushed = true
786  cqe = NULL
787  当非链表为空循环
788  cqe等于io_get_cqring(ctx)
789  如果非cqe且非force退出
792  req等于list_first_entry - get the first element from a list*@ptr: the list head to take the element from.*@type: the type of the struct this is embedded in.*@member: the name of the list_head within the struct.* Note, that list is expected to be not empty.( & cq_overflow_list, structio_kiocb, list)
794  链表项移动到头部
795  如果cqe
798  WRITE_ONCE(flags, 0)
799  否则
805  io_commit_cqring(ctx)
806  spin_unlock_irqrestore( & completion_lock, flags)
807  io_cqring_ev_posted(ctx)
809  当非链表为空循环
810  req等于list_first_entry - get the first element from a list*@ptr: the list head to take the element from.*@type: the type of the struct this is embedded in.*@member: the name of the list_head within the struct.* Note, that list is expected to be not empty.( & list, structio_kiocb, list)
811  删除链表项
812  io_put_req(req)
815  返回:cqe != NULL
调用者
名称描述
io_cqring_events
io_submit_sqes
io_ring_ctx_wait_and_kill
SYSCALL_DEFINE6