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

Commit 292bbd61 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "bfq-iosched: Make BFQ default to IOPS mode on SSDs"

parents eabcd830 052084a6
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -5425,6 +5425,18 @@ static int bfq_init_queue(struct request_queue *q, struct elevator_type *e)
	return -ENOMEM;
}

static void bfq_registered_queue(struct request_queue *q)
{
	struct elevator_queue *e = q->elevator;
	struct bfq_data *bfqd = e->elevator_data;

	/*
	 * Default to IOPS mode with no idling for SSDs
	 */
	if (blk_queue_nonrot(q))
		bfqd->bfq_slice_idle = 0;
}

static void bfq_slab_kill(void)
{
	kmem_cache_destroy(bfq_pool);
@@ -5672,6 +5684,7 @@ static struct elevator_type iosched_bfq_mq = {
		.init_hctx		= bfq_init_hctx,
		.init_sched		= bfq_init_queue,
		.exit_sched		= bfq_exit_queue,
		.elevator_registered_fn = bfq_registered_queue,
	},

	.uses_mq =		true,
+2 −0
Original line number Diff line number Diff line
@@ -856,6 +856,8 @@ int elv_register_queue(struct request_queue *q)
		e->registered = 1;
		if (!e->uses_mq && e->type->ops.sq.elevator_registered_fn)
			e->type->ops.sq.elevator_registered_fn(q);
		else if (e->uses_mq && e->type->ops.mq.elevator_registered_fn)
			e->type->ops.mq.elevator_registered_fn(q);
	}
	return error;
}
+1 −0
Original line number Diff line number Diff line
@@ -119,6 +119,7 @@ struct elevator_mq_ops {
	struct request *(*next_request)(struct request_queue *, struct request *);
	void (*init_icq)(struct io_cq *);
	void (*exit_icq)(struct io_cq *);
	void (*elevator_registered_fn)(struct request_queue *q);
};

#define ELV_NAME_MAX	(16)