函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:lk_throtl_drain - drain throttled bios*@q: request_queue to drain throttled bios for* Dispatch all currently throttled bios on @q through ->make_request_fn().

函数原型:void blk_throtl_drain(struct request_queue *q)__releases(&q->queue_lock) __acquires(&q->queue_lock)

返回类型:void

参数:

类型参数名称
struct request_queue *q
2392  td等于 Throttle data
2398  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
2406  lkg_for_each_descendant_post - post-order walk of a blkg's descendants*@d_blkg: loop cursor pointing to the current descendant*@pos_css: used for iteration*@p_blkg: target blkg to walk descendants of* Similar to blkg_for_each_descendant_pre() but performs (blkg, pos_css, root_blkg)
2407  Dispatch all bios from all children tg's queued on @parent_sq. On* return, @parent_sq is guaranteed to not have any active children tg's* and all bios from previously active tg's are on @parent_sq->bio_lists[].
2410  Dispatch all bios from all children tg's queued on @parent_sq. On* return, @parent_sq is guaranteed to not have any active children tg's* and all bios from previously active tg's are on @parent_sq->bio_lists[].
2412  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
2413  spin_unlock_irq( & queue_lock)
2416 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循环
2419  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
2421  spin_lock_irq( & queue_lock)