nbd: increase default and max request sizes
authorMichal Belczyk <belczyk@bsd.krakow.pl>
Tue, 30 Apr 2013 22:28:28 +0000 (15:28 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 1 May 2013 00:04:07 +0000 (17:04 -0700)
Raise the default max request size for nbd to 128KB (from 127KB) to get it
4KB aligned.  This patch also allows the max request size to be increased
(via /sys/block/nbd<x>/queue/max_sectors_kb) to 32MB.

The patch makes nbd network traffic more efficient by:
- reducing request fragmentation (4KB alignment)
- reducing the number of requests (fewer round trips, less network overhead)

Especially in high latency networks, larger request size can make a dramatic

Signed-off-by: Paul Clements <paul.clements@steeleye.com>
Signed-off-by: Michal Belczyk <belczyk@bsd.krakow.pl>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/block/nbd.c

index 7fecc784be01321cf0954024252e47fa777eb763..037288e7874d625676f5fa9e95a9920ac91551f5 100644 (file)
@@ -856,6 +856,8 @@ static int __init nbd_init(void)
                disk->queue->limits.discard_granularity = 512;
                disk->queue->limits.max_discard_sectors = UINT_MAX;
                disk->queue->limits.discard_zeroes_data = 0;
+               blk_queue_max_hw_sectors(disk->queue, 65536);
+               disk->queue->limits.max_sectors = 256;
        }
 
        if (register_blkdev(NBD_MAJOR, "nbd")) {