diff mbox

[v2,2/2] smartpqi: limit transfer length to 1MB

Message ID 20170623094006.16807-2-ydfan@suse.com (mailing list archive)
State Accepted
Headers show

Commit Message

Yadan Fan June 23, 2017, 9:40 a.m. UTC
The smartpqi firmware will bypass the cache for any request larger
than 1MB, so we should cap the request size to avoid any
performance degradation in kernels later than v4.3

This degradation is caused from d2be537c3ba3568acd79cd178327b842e60d035e,
which changed max_sectors_kb to 1280k, but the hardware is able to
work fine with it, so the true fix should be from smartpqi driver.

Signed-off-by: Yadan Fan <ydfan@suse.com>
---
 drivers/scsi/smartpqi/smartpqi.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Johannes Thumshirn June 23, 2017, 1:01 p.m. UTC | #1
On Fri, Jun 23, 2017 at 05:40:06PM +0800, Yadan Fan wrote:
> The smartpqi firmware will bypass the cache for any request larger
> than 1MB, so we should cap the request size to avoid any
> performance degradation in kernels later than v4.3
> 
> This degradation is caused from d2be537c3ba3568acd79cd178327b842e60d035e,
> which changed max_sectors_kb to 1280k, but the hardware is able to
> work fine with it, so the true fix should be from smartpqi driver.
> 
> Signed-off-by: Yadan Fan <ydfan@suse.com>
> ---

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Martin K. Petersen July 12, 2017, 9:27 p.m. UTC | #2
Don,

> The smartpqi firmware will bypass the cache for any request larger
> than 1MB, so we should cap the request size to avoid any
> performance degradation in kernels later than v4.3

Ping on these...
diff mbox

Patch

diff --git a/drivers/scsi/smartpqi/smartpqi.h b/drivers/scsi/smartpqi/smartpqi.h
index b673825f46b5..9513357bd472 100644
--- a/drivers/scsi/smartpqi/smartpqi.h
+++ b/drivers/scsi/smartpqi/smartpqi.h
@@ -630,7 +630,7 @@  struct pqi_encryption_info {
 };
 
 #define PQI_MAX_OUTSTANDING_REQUESTS	((u32)~0)
-#define PQI_MAX_TRANSFER_SIZE		(4 * 1024U * 1024U)
+#define PQI_MAX_TRANSFER_SIZE		(1024U * 1024U)
 
 #define RAID_MAP_MAX_ENTRIES		1024