1BLK_ATTEMPT_PLUG_MER(9)          Block Devices         BLK_ATTEMPT_PLUG_MER(9)
2
3
4

NAME

6       blk_attempt_plug_merge - try to merge with current's plugged list
7

SYNOPSIS

9       bool blk_attempt_plug_merge(struct request_queue * q, struct bio * bio,
10                                   unsigned int * request_count,
11                                   struct request ** same_queue_rq);
12

ARGUMENTS

14       q
15           request_queue new bio is being queued at
16
17       bio
18           new bio being queued
19
20       request_count
21           out parameter for number of traversed plugged requests
22
23       same_queue_rq
24           -- undescribed --
25

DESCRIPTION

27       Determine whether bio being queued on q can be merged with a request on
28       current's plugged list. Returns true if merge was successful, otherwise
29       false.
30
31       Plugging coalesces IOs from the same issuer for the same purpose
32       without going through q->queue_lock. As such it's more of an issuing
33       mechanism than scheduling, and the request, while may have elvpriv
34       data, is not added on the elevator at this point. In addition, we don't
35       have reliable access to the elevator outside queue lock. Only check
36       basic merging parameters without querying the elevator.
37
38       Caller must ensure !blk_queue_nomerges(q) beforehand.
39
41Kernel Hackers Manual 3.10         June 2019           BLK_ATTEMPT_PLUG_MER(9)
Impressum