ATTEMPT_PLUG_MERGE(9) Block Devices ATTEMPT_PLUG_MERGE(9)NAMEattempt_plug_merge - try to merge with current's plugged list
SYNOPSIS
bool attempt_plug_merge(struct request_queue * q, struct bio * bio,
unsigned int * request_count);
ARGUMENTS
q
request_queue new bio is being queued at
bio
new bio being queued
request_count
out parameter for number of traversed plugged requests
DESCRIPTION
Determine whether bio being queued on q can be merged with a request on
current's plugged list. Returns true if merge was successful, otherwise
false.
Plugging coalesces IOs from the same issuer for the same purpose
without going through q->queue_lock. As such it's more of an issuing
mechanism than scheduling, and the request, while may have elvpriv
data, is not added on the elevator at this point. In addition, we don't
have reliable access to the elevator outside queue lock. Only check
basic merging parameters without querying the elevator.
COPYRIGHTKernel Hackers Manual 3.8. June 2014 ATTEMPT_PLUG_MERGE(9)