block: remove artifical max_hw_sectors cap
authorChristoph Hellwig <hch@lst.de>
Sat, 6 Sep 2014 23:08:05 +0000 (16:08 -0700)
committerJens Axboe <axboe@fb.com>
Tue, 21 Oct 2014 20:02:54 +0000 (14:02 -0600)
Set max_sectors to the value the drivers provides as hardware limit by
default.  Linux had proper I/O throttling for a long time and doesn't
rely on a artifically small maximum I/O size anymore.  By not limiting
the I/O size by default we remove an annoying tuning step required for
most Linux installation.

Note that both the user, and if absolutely required the driver can still
impose a limit for FS requests below max_hw_sectors_kb.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-settings.c
drivers/block/aoe/aoeblk.c
include/linux/blkdev.h

index aa02247d227e530223d15e35ecabdacc2b801ce1..6ed2cbe5e8c9ae340233b0491255dfed40947590 100644 (file)
@@ -257,9 +257,7 @@ void blk_limits_max_hw_sectors(struct queue_limits *limits, unsigned int max_hw_
                       __func__, max_hw_sectors);
        }
 
-       limits->max_hw_sectors = max_hw_sectors;
-       limits->max_sectors = min_t(unsigned int, max_hw_sectors,
-                                   BLK_DEF_MAX_SECTORS);
+       limits->max_sectors = limits->max_hw_sectors = max_hw_sectors;
 }
 EXPORT_SYMBOL(blk_limits_max_hw_sectors);
 
index dd73e1ff1759c902db1734ac94975abea11e1b02..46c282fff104cdbd013780460751c84b79d558bc 100644 (file)
@@ -395,7 +395,7 @@ aoeblk_gdalloc(void *vp)
        WARN_ON(d->flags & DEVFL_TKILL);
        WARN_ON(d->gd);
        WARN_ON(d->flags & DEVFL_UP);
-       blk_queue_max_hw_sectors(q, BLK_DEF_MAX_SECTORS);
+       blk_queue_max_hw_sectors(q, 1024);
        q->backing_dev_info.name = "aoe";
        q->backing_dev_info.ra_pages = READ_AHEAD / PAGE_CACHE_SIZE;
        d->bufpool = mp;
index 0207a78a8d82274546cb2436c2568a53559317f9..74d14dba6fb753ad286a45c7116a9812400010cd 100644 (file)
@@ -1186,7 +1186,6 @@ extern int blk_verify_command(unsigned char *cmd, fmode_t has_write_perm);
 enum blk_default_limits {
        BLK_MAX_SEGMENTS        = 128,
        BLK_SAFE_MAX_SECTORS    = 255,
-       BLK_DEF_MAX_SECTORS     = 1024,
        BLK_MAX_SEGMENT_SIZE    = 65536,
        BLK_SEG_BOUNDARY_MASK   = 0xFFFFFFFFUL,
 };