megaraid_sas: Dual queue depth support
1. For iMR controllers, firmware will report two queue depths: - Controller-wide queue depth - LDIO queue depth (240) Controller-wide queue depth will be greater among the two. Using this new feature, iMR can provide larger Queue depth(QD) for JBOD and limited QD for Virtual Disk(VD). 2. megaraid_sas driver will throttle read/write LDIOs based on "LDIO Queue Depth". 3. Dual queue depth can be enabled/disabled via module parameter. It is enabled by default if the firmware supports it. Only specific firmware builds will enable the feature. 4. Added sysfs parameter "ldio_outstanding" which permits querying the number of outstanding LDIO requests at runtime. Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com> Signed-off-by: Kashyap Desai <kashyap.desai@avagotech.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:

committed by
Martin K. Petersen

parent
f9a9dee6a1
commit
308ec459bc
@@ -1353,6 +1353,12 @@ enum DCMD_TIMEOUT_ACTION {
|
||||
KILL_ADAPTER = 1,
|
||||
IGNORE_TIMEOUT = 2,
|
||||
};
|
||||
|
||||
enum FW_BOOT_CONTEXT {
|
||||
PROBE_CONTEXT = 0,
|
||||
OCR_CONTEXT = 1,
|
||||
};
|
||||
|
||||
/* Frame Type */
|
||||
#define IO_FRAME 0
|
||||
#define PTHRU_FRAME 1
|
||||
@@ -2038,6 +2044,8 @@ struct megasas_instance {
|
||||
u16 max_fw_cmds;
|
||||
u16 max_mfi_cmds;
|
||||
u16 max_scsi_cmds;
|
||||
u16 ldio_threshold;
|
||||
u16 cur_can_queue;
|
||||
u32 max_sectors_per_req;
|
||||
struct megasas_aen_event *ev;
|
||||
|
||||
@@ -2068,6 +2076,7 @@ struct megasas_instance {
|
||||
u32 fw_support_ieee;
|
||||
|
||||
atomic_t fw_outstanding;
|
||||
atomic_t ldio_outstanding;
|
||||
atomic_t fw_reset_no_pci_access;
|
||||
|
||||
struct megasas_instance_template *instancet;
|
||||
|
Reference in New Issue
Block a user