函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:io_wqe_worker

函数原型:static int io_wqe_worker(void *data)

返回类型:int

参数:

类型参数名称
void *data
520  worker等于data
521  wqe等于wqe
522  wq等于wq
525  io_worker_start(wqe, worker)
527  did_work = false
528  当非st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from循环
529  set_current_state(睡眠态)
530  loop :
531  如果did_workio_worker_spin_for_work(wqe)
533  spin_lock_irq( & lock)
534  如果io_wqe_run_queue(wqe)则
537  did_work = true
538  转到:loop
540  did_work = false
543  __release( & lock)
544  转到:loop
546  spin_unlock_irq( & lock)
547  如果signal_pending(当前进程)则Flush all pending signals for this kthread.
549  如果schedule_timeout - sleep until timeout*@timeout: timeout value in jiffies* Make the current task sleep until @timeout jiffies have* elapsed则继续下一循环
552  如果st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from或非flags按位与IO_WORKER_F_FIXED的值则退出
557  如果st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from
558  spin_lock_irq( & lock)
559  如果非wq_list_empty( & work_list)则io_worker_handle_work(worker)
561  否则spin_unlock_irq( & lock)
565  io_worker_exit(worker)
566  返回:0