函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:async_schedule_node_domain - NUMA specific version of async_schedule_domain*@func: function to execute asynchronously*@data: data pointer to pass to the function*@node: NUMA node that we want to schedule this on or close to*@domain: the domain

函数原型:async_cookie_t async_schedule_node_domain(async_func_t func, void *data, int node, struct async_domain *domain)

返回类型:async_cookie_t

参数:

类型参数名称
async_func_tfunc
void *data
intnode
struct async_domain *domain
173  entry等于分配内存并置零
179  如果非entryatomic_read( & entry_count)大于MAX_WORK
180  释放内存
181  spin_lock_irqsave( & async_lock, flags)
182  newcookie等于next_cookie自加
183  spin_unlock_irqrestore( & async_lock, flags)
186  func(data, newcookie)
187  返回:newcookie
189  初始化链表头
190  初始化链表头
191  INIT_WORK( & work, pick the first pending entry and run it)
192  func等于func
193  data等于data
194  domain等于domain
196  spin_lock_irqsave( & async_lock, flags)
199  newcookie等于cookie等于next_cookie自加
201  添加链表项
202  如果registered添加链表项
205  atomic_inc( & entry_count)
206  spin_unlock_irqrestore( & async_lock, flags)
209  flags或等于Used async_schedule*(), used by module init
212  queue_work_node - queue work on a "random" cpu for a given NUMA node*@node: NUMA node that we are targeting the work for*@wq: workqueue to use*@work: work to queue* We queue the work to a "random" CPU within a given NUMA node
214  返回:newcookie
调用者
名称描述
async_schedule_nodeasync_schedule_node - NUMA specific version of async_schedule*@func: function to execute asynchronously*@data: data pointer to pass to the function*@node: NUMA node that we want to schedule this on or close to
async_schedule_domainasync_schedule_domain - schedule a function for asynchronous execution within a certain domain*@func: function to execute asynchronously*@data: data pointer to pass to the function*@domain: the domain
async_schedule_dev_domainasync_schedule_dev_domain - A device specific version of async_schedule_domain*@func: function to execute asynchronously*@dev: device argument to be passed to function*@domain: the domain* Returns an async_cookie_t that may be used for checkpointing later