Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e167dfb5 authored by Jens Axboe's avatar Jens Axboe
Browse files

blk-mq: add BLK_MQ_F_DEFER_ISSUE support flag



Drivers can now tell blk-mq if they take advantage of the deferred
issue through 'last' or not. If they do, don't do queue-direct
for sync IO. This is a preparation patch for the nvme conversion.

Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 74c45052
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1172,7 +1172,12 @@ static void blk_mq_make_request(struct request_queue *q, struct bio *bio)
		goto run_queue;
	}

	if (is_sync) {
	/*
	 * If the driver supports defer issued based on 'last', then
	 * queue it up like normal since we can potentially save some
	 * CPU this way.
	 */
	if (is_sync && !(data.hctx->flags & BLK_MQ_F_DEFER_ISSUE)) {
		struct blk_mq_queue_data bd = {
			.rq = rq,
			.list = NULL,
+1 −0
Original line number Diff line number Diff line
@@ -146,6 +146,7 @@ enum {
	BLK_MQ_F_TAG_SHARED	= 1 << 1,
	BLK_MQ_F_SG_MERGE	= 1 << 2,
	BLK_MQ_F_SYSFS_UP	= 1 << 3,
	BLK_MQ_F_DEFER_ISSUE	= 1 << 4,

	BLK_MQ_S_STOPPED	= 0,
	BLK_MQ_S_TAG_ACTIVE	= 1,