diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2008-10-17 07:58:29 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2008-12-29 02:28:45 -0500 |
commit | a31a97381cdf7dceb03b797a8faf9bc8a01c65d1 (patch) | |
tree | 268f86dc23b8338396faf5b891af60a7fb23929f /block/blk-core.c | |
parent | a185eb4bc84155fff35b602ce99602c010de9634 (diff) |
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: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/blk-core.c')
-rw-r--r-- | block/blk-core.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index b1fd4f5f07d3..a824e49c0d0a 100644 --- a/block/blk-core.c +++ b/block/blk-core.c | |||
@@ -268,8 +268,7 @@ void __generic_unplug_device(struct request_queue *q) | |||
268 | { | 268 | { |
269 | if (unlikely(blk_queue_stopped(q))) | 269 | if (unlikely(blk_queue_stopped(q))) |
270 | return; | 270 | return; |
271 | 271 | if (!blk_remove_plug(q) && !blk_queue_nonrot(q)) | |
272 | if (!blk_remove_plug(q)) | ||
273 | return; | 272 | return; |
274 | 273 | ||
275 | q->request_fn(q); | 274 | q->request_fn(q); |
@@ -1241,11 +1240,11 @@ get_rq: | |||
1241 | if (test_bit(QUEUE_FLAG_SAME_COMP, &q->queue_flags) || | 1240 | if (test_bit(QUEUE_FLAG_SAME_COMP, &q->queue_flags) || |
1242 | bio_flagged(bio, BIO_CPU_AFFINE)) | 1241 | bio_flagged(bio, BIO_CPU_AFFINE)) |
1243 | req->cpu = blk_cpu_to_group(smp_processor_id()); | 1242 | req->cpu = blk_cpu_to_group(smp_processor_id()); |
1244 | if (elv_queue_empty(q)) | 1243 | if (!blk_queue_nonrot(q) && elv_queue_empty(q)) |
1245 | blk_plug_device(q); | 1244 | blk_plug_device(q); |
1246 | add_request(q, req); | 1245 | add_request(q, req); |
1247 | out: | 1246 | out: |
1248 | if (sync) | 1247 | if (sync || blk_queue_nonrot(q)) |
1249 | __generic_unplug_device(q); | 1248 | __generic_unplug_device(q); |
1250 | spin_unlock_irq(q->queue_lock); | 1249 | spin_unlock_irq(q->queue_lock); |
1251 | return 0; | 1250 | return 0; |