函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Handle either a requeue or a finish for rq. The things to do are* the same in both cases: all references to rq are to be dropped. In* particular, rq is considered completed from the point of view of* the scheduler.

函数原型:static void bfq_finish_requeue_request(struct request *rq)

返回类型:void

参数:

类型参数名称
struct request *rq
5896  bfqq等于RQ_BFQQ(rq)
5908  如果此条件成立可能性小(为编译器优化)(!(rq_flags & levator private data attached ))则返回
5916  如果非icq或非bfqq则返回
5919  bfqd等于parent bfq_data
5921  如果rq_flags按位与drive already may have started this one bfqg_stats_update_completion(bfqq_group(bfqq), Time that this request was allocated for this IO. , Time that I/O was submitted to the device. , op and common flags )
5927  如果此条件成立可能性大(为编译器优化)(rq_flags & drive already may have started this one )则
5930  spin_lock_irqsave( & lock, flags)
5932  如果rq恒等于* If set, then bfq_update_inject_limit() is invoked when * waited_rq is eventually completed.The processes associated with bfqq may happen to generate their* cumulative I/O at a lower rate than the rate at which the device* could serve the same I/O. This is rather probable, e.g., if only
5935  bfq_completed_request(bfqq, bfqd)
5936  bfq_finish_requeue_request_body(bfqq)
5938  spin_unlock_irqrestore( & lock, flags)
5939  否则
5958  bfq_finish_requeue_request_body(bfqq)
5978  priv[0] = NULL
5979  priv[1] = NULL