Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\bfq-iosched.c Create Date:2022-07-28 17:55:35
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:Attempt to schedule a merge of bfqq with the currently in-service* queue or with a close queue among the scheduled queues

Proto:static struct bfq_queue *bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq, void *io_struct, bool request)

Type:struct bfq_queue

Parameter:

TypeParameterName
struct bfq_data *bfqd
struct bfq_queue *bfqq
void *io_struct
boolrequest
2623  If Value is more likely to compile time( true if the device is non rotational and performs queueing ) Then Return NULL
2637  If bfq_too_late_for_merging(bfqq) Then Return NULL
2640  If Shared bfq_queue if queue is cooperating with one or more* other queues. Then Return Shared bfq_queue if queue is cooperating with one or more* other queues.
2643  If Not io_struct || Value for the false possibility is greater at compile time(bfqq == & fallback dummy bfqq for extreme OOM conditions ) Then Return NULL
2647  If bfq_tot_busy_queues(bfqd) == 1 Then Return NULL
2650  in_service_bfqq = bfq_queue in service
2652  If in_service_bfqq && in_service_bfqq != bfqq && Value is more likely to compile time(in_service_bfqq != & fallback dummy bfqq for extreme OOM conditions ) && bfq_rq_close_to_sector(io_struct, request, position of the last served request for the in-service queue ) && parent entity, for hierarchical scheduling == parent entity, for hierarchical scheduling && bfq_may_be_close_cooperator(bfqq, in_service_bfqq) Then
2658  new_bfqq = bfq_setup_merge(bfqq, in_service_bfqq)
2659  If new_bfqq Then Return new_bfqq
2667  new_bfqq = bfq_find_close_cooperator(bfqd, bfqq, bfq_io_struct_pos(io_struct, request))
2670  If new_bfqq && Value is more likely to compile time(new_bfqq != & fallback dummy bfqq for extreme OOM conditions ) && bfq_may_be_close_cooperator(bfqq, new_bfqq) Then Return bfq_setup_merge(bfqq, new_bfqq)
2674  Return NULL
Caller
NameDescribe
bfq_allow_bio_merge
__bfq_insert_requestrns true if it causes the idle timer to be disabled