Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52b62ac7 authored by Sumit Saxena's avatar Sumit Saxena Committed by Martin K. Petersen
Browse files

megaraid_sas: IO throttling support



This patch will add capability in driver to tell firmware that it can
throttle IOs in case controller's queue depth is downgraded post OFU
(online firmware upgrade). This feature will ensure firmware can be
downgraded from higher queue depth to lower queue depth without needing
system reboot. Added throttling code in IO path of driver, in case OS
tries to send more IOs than post OFU firmware's queue depth.

Signed-off-by: default avatarSumit Saxena <sumit.saxena@avagotech.com>
Signed-off-by: default avatarKashyap Desai <kashyap.desai@avagotech.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 308ec459
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1537,7 +1537,8 @@ union megasas_sgl_frame {
typedef union _MFI_CAPABILITIES {
	struct {
#if   defined(__BIG_ENDIAN_BITFIELD)
		u32     reserved:21;
		u32     reserved:20;
		u32     support_qd_throttling:1;
		u32     support_fp_rlbypass:1;
		u32     support_vfid_in_ioframe:1;
		u32     support_ext_io_size:1;
@@ -1561,7 +1562,8 @@ typedef union _MFI_CAPABILITIES {
		u32     support_ext_io_size:1;
		u32     support_vfid_in_ioframe:1;
		u32     support_fp_rlbypass:1;
		u32     reserved:21;
		u32     support_qd_throttling:1;
		u32     reserved:20;
#endif
	} mfi_capabilities;
	__le32		reg;
+1 −0
Original line number Diff line number Diff line
@@ -803,6 +803,7 @@ megasas_ioc_init_fusion(struct megasas_instance *instance)
	if (!dual_qdepth_disable)
		drv_ops->mfi_capabilities.support_ext_queue_depth = 1;

	drv_ops->mfi_capabilities.support_qd_throttling = 1;
	/* Convert capability to LE32 */
	cpu_to_le32s((u32 *)&init_frame->driver_operations.mfi_capabilities);