Index: linux-4.4.59-1/block/blk-settings.c =================================================================== --- linux-4.4.59-1.orig/block/blk-settings.c +++ linux-4.4.59-1/block/blk-settings.c @@ -20,6 +20,12 @@ EXPORT_SYMBOL(blk_max_low_pfn); unsigned long blk_max_pfn; +int default_max_sectors = BLK_DEF_MAX_SECTORS; +module_param(default_max_sectors, int, 0); + +int default_max_segments = BLK_MAX_SEGMENTS; +module_param(default_max_segments, int, 0); + /** * blk_queue_prep_rq - set a prepare_request function for queue * @q: queue @@ -87,7 +93,7 @@ EXPORT_SYMBOL_GPL(blk_queue_lld_busy); */ void blk_set_default_limits(struct queue_limits *lim) { - lim->max_segments = BLK_MAX_SEGMENTS; + lim->max_segments = default_max_segments; lim->max_integrity_segments = 0; lim->seg_boundary_mask = BLK_SEG_BOUNDARY_MASK; lim->virt_boundary_mask = 0; @@ -251,7 +257,7 @@ void blk_queue_max_hw_sectors(struct req limits->max_hw_sectors = max_hw_sectors; max_sectors = min_not_zero(max_hw_sectors, limits->max_dev_sectors); - max_sectors = min_t(unsigned int, max_sectors, BLK_DEF_MAX_SECTORS); + max_sectors = min_t(unsigned int, max_sectors, default_max_sectors); limits->max_sectors = max_sectors; q->backing_dev_info->io_pages = max_sectors >> (PAGE_SHIFT - 9); } Index: linux-4.4.59-1/drivers/scsi/Kconfig =================================================================== --- linux-4.4.59-1.orig/drivers/scsi/Kconfig +++ linux-4.4.59-1/drivers/scsi/Kconfig @@ -236,6 +236,24 @@ config SCSI_LOGGING there should be no noticeable performance impact as long as you have logging turned off. +config SCSI_MAX_SG_SEGMENTS + int "Maximum SCSI scatter gather segment size" + range 32 256 + default "128" + depends on SCSI + help + Control the maximum limit for scatter gather buffers for the + SCSI device. + +config SCSI_MAX_SG_SEGMENTS + int "Maximum SCSI scatter gather segment size" + range 32 256 + default "128" + depends on SCSI + help + Control the maximum limit for scatter gather buffers for the + SCSI device. + config SCSI_SCAN_ASYNC bool "Asynchronous SCSI scanning" depends on SCSI Index: linux-4.4.59-1/drivers/message/fusion/Kconfig =================================================================== --- linux-4.4.59-1.orig/drivers/message/fusion/Kconfig +++ linux-4.4.59-1/drivers/message/fusion/Kconfig @@ -61,9 +61,9 @@ config FUSION_SAS LSISAS1078 config FUSION_MAX_SGE - int "Maximum number of scatter gather entries (16 - 128)" - default "128" - range 16 128 + int "Maximum number of scatter gather entries (16 - 256)" + default "256" + range 16 256 help This option allows you to specify the maximum number of scatter- gather entries per I/O. The driver default is 128, which matches Index: linux-4.4.59-1/drivers/message/fusion/mptbase.h =================================================================== --- linux-4.4.59-1.orig/drivers/message/fusion/mptbase.h +++ linux-4.4.59-1/drivers/message/fusion/mptbase.h @@ -166,10 +166,10 @@ * Set the MAX_SGE value based on user input. */ #ifdef CONFIG_FUSION_MAX_SGE -#if CONFIG_FUSION_MAX_SGE < 16 +#if CONFIG_FUSION_MAX_SGE < 16 #define MPT_SCSI_SG_DEPTH 16 -#elif CONFIG_FUSION_MAX_SGE > 128 -#define MPT_SCSI_SG_DEPTH 128 +#elif CONFIG_FUSION_MAX_SGE > 256 +#define MPT_SCSI_SG_DEPTH 256 #else #define MPT_SCSI_SG_DEPTH CONFIG_FUSION_MAX_SGE #endif