函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:io_sq_offload_start

函数原型:static int io_sq_offload_start(struct io_ring_ctx *ctx, struct io_uring_params *p)

返回类型:int

参数:

类型参数名称
struct io_ring_ctx *ctx
struct io_uring_params *p
4564  init_waitqueue_head( & sqo_wait)
4565  mmgrab() - Pin a &struct mm_struct
4566  sqo_mm等于mm
4568  如果flags按位与SQ poll thread
4569  ret等于负EPERM
4570  如果非操作权限检查则转到:err
4573  sq_thread_idle等于msecs_to_jiffies: - convert milliseconds to jiffies*@m: time in milliseconds* conversion is done as follows:* - negative values mean 'infinite timeout' (MAX_JIFFY_OFFSET)* - 'too large' values [that would result in larger than
4574  如果非sq_thread_idlesq_thread_idle等于HZ
4577  如果flags按位与sq_thread_cpu is valid
4578  cpu等于sq_thread_cpu
4580  ret等于负EINVAL
4581  如果cpu大于等于CPU数量则转到:err
4583  如果非cpu_online(cpu)则转到:err
4589  否则
4593  如果是错误
4594  ret等于错误
4596  转到:err
4598  唤醒中断线程
4599  否则如果flags按位与sq_thread_cpu is valid
4601  ret等于负EINVAL
4602  转到:err
4605  mm等于sqo_mm
4606  user等于user
4607  creds等于creds
4608  get_work等于io_get_work
4609  put_work等于io_put_work
4612  concurrency等于两数取小(sq_entries, 4 * num_online_cpus())
4613  IO offload 等于io_wq_create(concurrency, & data)
4614  如果是错误
4615  ret等于错误
4616  IO offload = NULL
4617  转到:err
4620  返回:0
4621  err :
4622  io_finish_async(ctx)
4623  mmdrop(sqo_mm)
4624  sqo_mm = NULL
4625  返回:ret
调用者
名称描述
io_uring_create