函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:lk_throtl_dispatch_work_fn - work function for throtl_data->dispatch_work*@work: work item being executed* This function is queued for execution when bio's reach the bio_lists[]* of throtl_data->service_queue. Those bio's are ready and issued by this

函数原型:static void blk_throtl_dispatch_work_fn(struct work_struct *work)

返回类型:void

参数:

类型参数名称
struct work_struct *work
1323  td等于container_of - cast a member of a structure out to the containing structure*@ptr: the pointer to the member.*@type: the type of the container struct this is embedded in.*@member: the name of the member within the struct.(work, structthrotl_data, dispatch_work)
1325  td_sq等于 service tree for active throtl groups
1326  q等于queue
1332  bio_list_init( & bio_list_on_stack)
1334  spin_lock_irq( & queue_lock)
1335 rw小于等于WRITE循环bio等于hrotl_pop_queued - pop the first bio form a qnode list*@queued: the qnode list to pop a bio from*@tg_to_put: optional out argument for throtl_grp to put* Pop the first bio from the qnode list @queued循环
1337  bio_list_add( & bio_list_on_stack, bio)
1338  spin_unlock_irq( & queue_lock)
1340  如果非bio_list_empty( & bio_list_on_stack)则
1341  lk_start_plug - initialize blk_plug and track it inside the task_struct*@plug: The &struct blk_plug that needs to be initialized* Description:* blk_start_plug() indicates to the block layer an intent by the caller
1342 bio等于bio_list_pop( & bio_list_on_stack)循环
1343  generic_make_request - hand a buffer to its device driver for I/O*@bio: The bio describing the location in memory and on the device.* generic_make_request() is used to make I/O requests of block* devices
1344  lk_finish_plug - mark the end of a batch of submitted I/O*@plug: The &struct blk_plug passed to blk_start_plug()* Description:* Indicate that a batch of I/O submissions is complete. This function* must be paired with an initial call to blk_start_plug()