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

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

block: don't use plugging on SSD devices



We just want to hand the first bits of IO to the device as fast
as possible. Gains a few percent on the IOPS rate.

Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent a185eb4b
Loading
Loading
Loading
Loading
+3 −4
Original line number Original line Diff line number Diff line
@@ -268,8 +268,7 @@ void __generic_unplug_device(struct request_queue *q)
{
{
	if (unlikely(blk_queue_stopped(q)))
	if (unlikely(blk_queue_stopped(q)))
		return;
		return;

	if (!blk_remove_plug(q) && !blk_queue_nonrot(q))
	if (!blk_remove_plug(q))
		return;
		return;


	q->request_fn(q);
	q->request_fn(q);
@@ -1241,11 +1240,11 @@ get_rq:
	if (test_bit(QUEUE_FLAG_SAME_COMP, &q->queue_flags) ||
	if (test_bit(QUEUE_FLAG_SAME_COMP, &q->queue_flags) ||
	    bio_flagged(bio, BIO_CPU_AFFINE))
	    bio_flagged(bio, BIO_CPU_AFFINE))
		req->cpu = blk_cpu_to_group(smp_processor_id());
		req->cpu = blk_cpu_to_group(smp_processor_id());
	if (elv_queue_empty(q))
	if (!blk_queue_nonrot(q) && elv_queue_empty(q))
		blk_plug_device(q);
		blk_plug_device(q);
	add_request(q, req);
	add_request(q, req);
out:
out:
	if (sync)
	if (sync || blk_queue_nonrot(q))
		__generic_unplug_device(q);
		__generic_unplug_device(q);
	spin_unlock_irq(q->queue_lock);
	spin_unlock_irq(q->queue_lock);
	return 0;
	return 0;