Patch "cxlflash: Increase cmd_per_lun for better throughput" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
cxlflash: Increase cmd_per_lun for better throughput
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
cxlflash-increase-cmd_per_lun-for-better-throughput.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
83430833b4d4a9c9b23964babbeb1f36450f8136Mon Sep 17 00:00:00 2001
From: "Manoj N. Kumar" <[email protected]>
Date: Fri, 4 Mar 2016 15:55:20 -0600
Subject: cxlflash: Increase cmd_per_lun for better throughput
From: Manoj N. Kumar <[email protected]>
commit 83430833b4d4a9c9b23964babbeb1f36450f8136 upstream.
With the current value of cmd_per_lun at 16, the throughput over a single adapter is limited to around 150kIOPS.
Increase the value of cmd_per_lun to 256 to improve throughput. With this change a single adapter is able to attain close to the maximum throughput (380kIOPS). Also change the number of RRQ entries that can be queued.
--- drivers/scsi/cxlflash/common.h | 8 +++++--- drivers/scsi/cxlflash/main.c | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-)
drivers/scsi/cxlflash/common.h +5 -3
@@ -34,7 +34,6 @@ extern const struct file_operations cxlfsectors */ -#define NUM_RRQ_ENTRY 16/* for master issued cmds */ #define MAX_RHT_PER_CONTEXT (PAGE_SIZE / sizeof(struct sisl_rht_entry))/* AFU command retry limit */
@@ -48,9 +47,12 @@ extern const struct file_operations cxlfindex derivation */ -#define CXLFLASH_MAX_CMDS 16 +#define CXLFLASH_MAX_CMDS 256#define CXLFLASH_MAX_CMDS_PER_LUN CXLFLASH_MAX_CMDS +/* RRQ for master issued cmds */ +#define NUM_RRQ_ENTRY CXLFLASH_MAX_CMDS +static inline void check_sizes (void ) {
@@ -149,7 +151,7 @@ struct afu_cmd {struct afu {/* Stuff requiring alignment go first. */ -u64 rrq_entry[NUM_RRQ_ENTRY ];/* 128B RRQ */ +u64 rrq_entry[NUM_RRQ_ENTRY ];/* 2K RRQ */ /* * Command & data for AFU commands. */
drivers/scsi/cxlflash/main.c +1 -1
@@ -2305,7 +2305,7 @@ static struct scsi_host_template driver_ .eh_device_reset_handler = cxlflash_eh_device_reset_handler, .eh_host_reset_handler = cxlflash_eh_host_reset_handler, .change_queue_depth = cxlflash_change_queue_depth, - .cmd_per_lun = 16, + .cmd_per_lun = CXLFLASH_MAX_CMDS_PER_LUN, .can_queue = CXLFLASH_MAX_CMDS, .this_id = -1, .sg_tablesize = SG_NONE, /* No scatter gather support */
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/cxlflash-increase-cmd_per_lun-for-better-throughput.patch