All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
To: linux-scsi@vger.kernel.org
Cc: martin.petersen@oracle.com, thenzl@redhat.com,
	jejb@linux.vnet.ibm.com, kashyap.desai@broadcom.com,
	sumit.saxena@broadcom.com, hare@suse.com,
	Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Subject: [PATCH 01/39] Revert "scsi: megaraid_sas: Enable or Disable Fast path based on the PCI Threshold Bandwidth"
Date: Mon,  6 Feb 2017 01:59:34 -0800	[thread overview]
Message-ID: <1486375212-17329-2-git-send-email-shivasharan.srikanteshwara@broadcom.com> (raw)
In-Reply-To: <1486375212-17329-1-git-send-email-shivasharan.srikanteshwara@broadcom.com>

This reverts
commit "3e5eadb1a881" ("scsi: megaraid_sas: Enable or Disable Fast path based on the PCI Threshold Bandwidth")

This patch was aimed to increase performance of R1 Write operation for large IO size.
Since this method used timer approach, it turn on/off fast path did not work as expected.
Patch 0011 describes new algorithm and performance number.

Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com>
---
 drivers/scsi/megaraid/megaraid_sas.h        |  8 -----
 drivers/scsi/megaraid/megaraid_sas_base.c   | 48 -----------------------------
 drivers/scsi/megaraid/megaraid_sas_fp.c     |  7 -----
 drivers/scsi/megaraid/megaraid_sas_fusion.c | 16 ++++------
 drivers/scsi/megaraid/megaraid_sas_fusion.h |  2 +-
 5 files changed, 7 insertions(+), 74 deletions(-)

diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
index ba9fbb7..f5c4742 100644
--- a/drivers/scsi/megaraid/megaraid_sas.h
+++ b/drivers/scsi/megaraid/megaraid_sas.h
@@ -1477,8 +1477,6 @@ enum FW_BOOT_CONTEXT {
 #define MFI_1068_FW_HANDSHAKE_OFFSET		0x64
 #define MFI_1068_FW_READY			0xDDDD0000
 
-#define MEGASAS_RAID1_FAST_PATH_STATUS_CHECK_INTERVAL HZ
-
 #define MR_MAX_REPLY_QUEUES_OFFSET              0X0000001F
 #define MR_MAX_REPLY_QUEUES_EXT_OFFSET          0X003FC000
 #define MR_MAX_REPLY_QUEUES_EXT_OFFSET_SHIFT    14
@@ -2154,10 +2152,6 @@ struct megasas_instance {
 	atomic_t ldio_outstanding;
 	atomic_t fw_reset_no_pci_access;
 
-	atomic64_t bytes_wrote; /* used for raid1 fast path enable or disable */
-	atomic_t r1_write_fp_capable;
-
-
 	struct megasas_instance_template *instancet;
 	struct tasklet_struct isr_tasklet;
 	struct work_struct work_init;
@@ -2199,7 +2193,6 @@ struct megasas_instance {
 	long reset_flags;
 	struct mutex reset_mutex;
 	struct timer_list sriov_heartbeat_timer;
-	struct timer_list r1_fp_hold_timer;
 	char skip_heartbeat_timer_del;
 	u8 requestorId;
 	char PlasmaFW111;
@@ -2216,7 +2209,6 @@ struct megasas_instance {
 	bool is_ventura;
 	bool msix_combined;
 	u16 max_raid_mapsize;
-	u64 pci_threshold_bandwidth; /* used to control the fp writes */
 };
 struct MR_LD_VF_MAP {
 	u32 size;
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index 70891a7..3ed876a 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -1940,9 +1940,6 @@ void megaraid_sas_kill_hba(struct megasas_instance *instance)
 	}
 	/* Complete outstanding ioctls when adapter is killed */
 	megasas_complete_outstanding_ioctls(instance);
-	if (instance->is_ventura)
-		del_timer_sync(&instance->r1_fp_hold_timer);
-
 }
 
  /**
@@ -2441,24 +2438,6 @@ void megasas_sriov_heartbeat_handler(unsigned long instance_addr)
 	}
 }
 
-/*Handler for disabling/enabling raid 1 fast paths*/
-void megasas_change_r1_fp_status(unsigned long instance_addr)
-{
-	struct megasas_instance *instance =
-			(struct megasas_instance *)instance_addr;
-	if (atomic64_read(&instance->bytes_wrote) >=
-					instance->pci_threshold_bandwidth) {
-
-		atomic64_set(&instance->bytes_wrote, 0);
-		atomic_set(&instance->r1_write_fp_capable, 0);
-	} else {
-		atomic64_set(&instance->bytes_wrote, 0);
-		atomic_set(&instance->r1_write_fp_capable, 1);
-	}
-	mod_timer(&instance->r1_fp_hold_timer,
-	 jiffies + MEGASAS_RAID1_FAST_PATH_STATUS_CHECK_INTERVAL);
-}
-
 /**
  * megasas_wait_for_outstanding -	Wait for all outstanding cmds
  * @instance:				Adapter soft state
@@ -5386,17 +5365,6 @@ static int megasas_init_fw(struct megasas_instance *instance)
 			instance->skip_heartbeat_timer_del = 1;
 	}
 
-	if (instance->is_ventura) {
-		atomic64_set(&instance->bytes_wrote, 0);
-		atomic_set(&instance->r1_write_fp_capable, 1);
-		megasas_start_timer(instance,
-			    &instance->r1_fp_hold_timer,
-			    megasas_change_r1_fp_status,
-			    MEGASAS_RAID1_FAST_PATH_STATUS_CHECK_INTERVAL);
-				dev_info(&instance->pdev->dev, "starting the raid 1 fp timer with interval %d\n",
-				MEGASAS_RAID1_FAST_PATH_STATUS_CHECK_INTERVAL);
-	}
-
 	return 0;
 
 fail_get_ld_pd_list:
@@ -6187,9 +6155,6 @@ megasas_suspend(struct pci_dev *pdev, pm_message_t state)
 	if (instance->requestorId && !instance->skip_heartbeat_timer_del)
 		del_timer_sync(&instance->sriov_heartbeat_timer);
 
-	if (instance->is_ventura)
-		del_timer_sync(&instance->r1_fp_hold_timer);
-
 	megasas_flush_cache(instance);
 	megasas_shutdown_controller(instance, MR_DCMD_HIBERNATE_SHUTDOWN);
 
@@ -6316,16 +6281,6 @@ megasas_resume(struct pci_dev *pdev)
 	megasas_setup_jbod_map(instance);
 	instance->unload = 0;
 
-	if (instance->is_ventura) {
-		atomic64_set(&instance->bytes_wrote, 0);
-		atomic_set(&instance->r1_write_fp_capable, 1);
-		megasas_start_timer(instance,
-			    &instance->r1_fp_hold_timer,
-			    megasas_change_r1_fp_status,
-			    MEGASAS_RAID1_FAST_PATH_STATUS_CHECK_INTERVAL);
-	}
-
-
 	/*
 	 * Initiate AEN (Asynchronous Event Notification)
 	 */
@@ -6414,9 +6369,6 @@ static void megasas_detach_one(struct pci_dev *pdev)
 	if (instance->requestorId && !instance->skip_heartbeat_timer_del)
 		del_timer_sync(&instance->sriov_heartbeat_timer);
 
-	if (instance->is_ventura)
-		del_timer_sync(&instance->r1_fp_hold_timer);
-
 	if (instance->fw_crash_state != UNAVAILABLE)
 		megasas_free_host_crash_buffer(instance);
 	scsi_remove_host(instance->host);
diff --git a/drivers/scsi/megaraid/megaraid_sas_fp.c b/drivers/scsi/megaraid/megaraid_sas_fp.c
index 322a72b..f1384b0 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fp.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fp.c
@@ -197,9 +197,6 @@ void MR_PopulateDrvRaidMap(struct megasas_instance *instance)
 
 	if (instance->max_raid_mapsize) {
 		fw_map_dyn = fusion->ld_map[(instance->map_id & 1)];
-		if (fw_map_dyn->pci_threshold_bandwidth)
-			instance->pci_threshold_bandwidth =
-			le64_to_cpu(fw_map_dyn->pci_threshold_bandwidth);
 #if VD_EXT_DEBUG
 		dev_dbg(&instance->pdev->dev, "raidMapSize 0x%x fw_map_dyn->descTableOffset 0x%x\n",
 			le32_to_cpu(fw_map_dyn->raid_map_size),
@@ -207,8 +204,6 @@ void MR_PopulateDrvRaidMap(struct megasas_instance *instance)
 		dev_dbg(&instance->pdev->dev, "descTableSize 0x%x descTableNumElements 0x%x\n",
 			le32_to_cpu(fw_map_dyn->desc_table_size),
 			le32_to_cpu(fw_map_dyn->desc_table_num_elements));
-		dev_dbg(&instance->pdev->dev, "PCIThreasholdBandwidth %llu\n",
-			instance->pci_threshold_bandwidth);
 		dev_dbg(&instance->pdev->dev, "drv map %p ldCount %d\n",
 			drv_map, fw_map_dyn->ld_count);
 #endif
@@ -439,8 +434,6 @@ void MR_PopulateDrvRaidMap(struct megasas_instance *instance)
 			sizeof(struct MR_DEV_HANDLE_INFO) *
 			MAX_RAIDMAP_PHYSICAL_DEVICES);
 	}
-	if (instance->is_ventura && !instance->pci_threshold_bandwidth)
-		instance->pci_threshold_bandwidth = ULLONG_MAX;
 }
 
 /*
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c
index 9a9c84f..54728b3 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -95,7 +95,6 @@ extern unsigned int resetwaittime;
 extern unsigned int dual_qdepth_disable;
 static void megasas_free_rdpq_fusion(struct megasas_instance *instance);
 static void megasas_free_reply_fusion(struct megasas_instance *instance);
-void megasas_change_r1_fp_status(unsigned long instance_addr);
 
 
 
@@ -2634,9 +2633,8 @@ megasas_build_and_issue_cmd_fusion(struct megasas_instance *instance,
 	 *	to get new command
 	 */
 	if (cmd->is_raid_1_fp_write &&
-		(atomic_inc_return(&instance->fw_outstanding) >
-			(instance->host->can_queue) ||
-		(!atomic_read(&instance->r1_write_fp_capable)))) {
+		atomic_inc_return(&instance->fw_outstanding) >
+			(instance->host->can_queue)) {
 		megasas_fpio_to_ldio(instance, cmd, cmd->scmd);
 		atomic_dec(&instance->fw_outstanding);
 	} else if (cmd->is_raid_1_fp_write) {
@@ -2645,19 +2643,17 @@ megasas_build_and_issue_cmd_fusion(struct megasas_instance *instance,
 		megasas_prepare_secondRaid1_IO(instance, cmd, r1_cmd);
 	}
 
+
 	/*
 	 * Issue the command to the FW
 	 */
-	if (scmd->sc_data_direction == PCI_DMA_TODEVICE && instance->is_ventura)
-		atomic64_add(scsi_bufflen(scmd), &instance->bytes_wrote);
 
 	megasas_fire_cmd_fusion(instance, req_desc, instance->is_ventura);
 
-	if (r1_cmd) {
-		atomic64_add(scsi_bufflen(scmd), &instance->bytes_wrote);
+	if (r1_cmd)
 		megasas_fire_cmd_fusion(instance, r1_cmd->request_desc,
-			instance->is_ventura);
-	}
+				instance->is_ventura);
+
 
 	return 0;
 }
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.h b/drivers/scsi/megaraid/megaraid_sas_fusion.h
index 3addd0c..82a4ff7 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.h
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.h
@@ -977,7 +977,7 @@ struct MR_FW_RAID_MAP_DYNAMIC {
 	u32 desc_table_size;  /* Total Size of desc table */
 	/* Total Number of elements in the desc table */
 	u32 desc_table_num_elements;
-	u64	pci_threshold_bandwidth;
+	u64	reserved1;
 	u32	reserved2[3];	/*future use */
 	/* timeout value used by driver in FP IOs */
 	u8 fp_pd_io_timeout_sec;
-- 
2.8.3

  reply	other threads:[~2017-02-06 10:01 UTC|newest]

Thread overview: 135+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-06  9:59 [PATCH 00/39] megaraid_sas: Updates for scsi-next Shivasharan S
2017-02-06  9:59 ` Shivasharan S [this message]
2017-02-06 10:07   ` [PATCH 01/39] Revert "scsi: megaraid_sas: Enable or Disable Fast path based on the PCI Threshold Bandwidth" Shivasharan Srikanteshwara
2017-02-06 10:24   ` Hannes Reinecke
2017-02-06 13:08   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 02/39] megaraid_sas: cpu select rework Shivasharan S
2017-02-06 10:25   ` Hannes Reinecke
2017-02-06 13:08   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 03/39] megaraid_sas: raid 1 fast path code optimize Shivasharan S
2017-02-06 10:26   ` Hannes Reinecke
2017-02-06 13:12   ` Tomas Henzl
2017-02-06 13:27     ` Kashyap Desai
2017-02-06 13:38       ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 04/39] megaraid_sas: 32 bit descriptor fire cmd optimization Shivasharan S
2017-02-06 10:23   ` Hannes Reinecke
2017-02-06 10:38     ` Shivasharan Srikanteshwara
2017-02-06 10:38     ` Shivasharan Srikanteshwara
2017-02-06 13:40   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 05/39] megaraid_sas: Refactor MEGASAS_IS_LOGICAL macro using sdev Shivasharan S
2017-02-06 10:29   ` Hannes Reinecke
2017-02-06 13:44   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 06/39] megaraid_sas: RAID map is accessed for SYS PDs when use_seqnum_jbod_fp is not set Shivasharan S
2017-02-06 10:40   ` Hannes Reinecke
2017-02-06 13:16     ` Shivasharan Srikanteshwara
2017-02-06  9:59 ` [PATCH 07/39] megaraid_sas: Use DID_REQUEUE Shivasharan S
2017-02-06 10:41   ` Hannes Reinecke
2017-02-06 13:46   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 08/39] megaraid_sas: megasas_get_request_descriptor always return valid desc Shivasharan S
2017-02-06 10:43   ` Hannes Reinecke
2017-02-06 13:44     ` Shivasharan Srikanteshwara
2017-02-06 23:54       ` Martin K. Petersen
2017-02-07  0:02         ` Martin K. Petersen
2017-02-06 14:06   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 09/39] megaraid_sas: NVME Interface detection and prop settings Shivasharan S
2017-02-06 10:47   ` Hannes Reinecke
2017-02-06 13:55     ` Shivasharan Srikanteshwara
2017-02-06  9:59 ` [PATCH 10/39] megaraid_sas: NVME interface target prop added Shivasharan S
2017-02-06 10:15   ` Shivasharan Srikanteshwara
2017-02-06 10:48   ` Hannes Reinecke
2017-02-06 14:14   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 11/39] " Shivasharan S
2017-02-06 10:16   ` Shivasharan Srikanteshwara
2017-02-06 10:34   ` Shivasharan Srikanteshwara
2017-02-06 10:41   ` kbuild test robot
2017-02-06 10:51   ` Hannes Reinecke
2017-02-06 14:37   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 12/39] megaraid_sas: raid 1 write performance for large io Shivasharan S
2017-02-06 10:54   ` Hannes Reinecke
2017-02-06 14:39   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 13/39] megaraid_sas : set residual bytes count during IO compeltion Shivasharan S
2017-02-06 10:54   ` Hannes Reinecke
2017-02-06 14:39   ` Tomas Henzl
2017-02-06 23:52   ` Martin K. Petersen
2017-02-07 11:07     ` Kashyap Desai
2017-02-07 22:19       ` Martin K. Petersen
2017-02-06  9:59 ` [PATCH 14/39] megaraid_sas: enhance debug logs in OCR context Shivasharan S
2017-02-06 10:55   ` Hannes Reinecke
2017-02-06 14:44   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 15/39] megaraid_sas: add print in device removal path Shivasharan S
2017-02-06 10:55   ` Hannes Reinecke
2017-02-06 14:46   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 16/39] megaraid_sas: reduce size of fusion_context and use vmalloc if kmalloc fails Shivasharan S
2017-02-06 11:18   ` Hannes Reinecke
2017-02-06 15:40   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 17/39] megaraid_sas: In validate raid map, raid capability is not converted to cpu format for all lds Shivasharan S
2017-02-06 11:18   ` Hannes Reinecke
2017-02-06 15:42   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 18/39] megaraid_sas: MR_TargetIdToLdGet u8 to u16 and avoid invalid raid-map access Shivasharan S
2017-02-06 11:20   ` Hannes Reinecke
2017-02-07 11:54     ` Shivasharan Srikanteshwara
2017-02-06  9:59 ` [PATCH 19/39] megaraid_sas: Big endian RDPQ mode fix Shivasharan S
2017-02-06 11:21   ` Hannes Reinecke
2017-02-06 15:44   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 20/39] megaraid_sas: big endian support changes Shivasharan S
2017-02-06 11:22   ` Hannes Reinecke
2017-02-06 15:46   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 21/39] megaraid_sas: avoid unaligned access in ioctl path Shivasharan S
2017-02-06 11:22   ` Hannes Reinecke
2017-02-06 15:48   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 22/39] megaraid_sas: latest controller OCR capability from FW before sending shutdown DCMD Shivasharan S
2017-02-06 11:23   ` Hannes Reinecke
2017-02-06 15:50   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 23/39] megaraid_sas: set pd_after_lb from MR_BuildRaidContext and initialize pDevHandle to MR_DEVHANDLE_INVALID Shivasharan S
2017-02-06 11:23   ` Hannes Reinecke
2017-02-06 15:51   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 24/39] megaraid_sas: Change max_cmd from u32 to u16 in all functions Shivasharan S
2017-02-06 11:24   ` Hannes Reinecke
2017-02-06 15:51   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 25/39] megaraid_sas: update can_queue only if the new value is less Shivasharan S
2017-02-06 11:24   ` Hannes Reinecke
2017-02-06 15:52   ` Tomas Henzl
2017-02-06  9:59 ` [PATCH 26/39] megaraid_sas: max_fw_cmds are decremented twice, remove duplicate Shivasharan S
2017-02-06 11:24   ` Hannes Reinecke
2017-02-06 15:53   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 27/39] megaraid_sas: megasas_return_cmd does not memset IO frame to zero Shivasharan S
2017-02-06 11:25   ` Hannes Reinecke
2017-02-06 15:57   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 28/39] megaraid_sas: Remove unused pd_index from megasas_build_ld_nonrw_fusion Shivasharan S
2017-02-06 11:25   ` Hannes Reinecke
2017-02-06 15:58   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 29/39] megaraid_sas: Do not set fp_possible if TM capable for non-RW syspdIO, change fp_possible to bool Shivasharan S
2017-02-06 11:26   ` Hannes Reinecke
2017-02-06 15:58   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 30/39] megaraid_sas: During OCR, if get_ctrl_info fails do not continue with OCR Shivasharan S
2017-02-06 11:26   ` Hannes Reinecke
2017-02-06 15:59   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 31/39] megaraid_sas: Change build_mpt_mfi_pass_thru to return void Shivasharan S
2017-02-06 11:27   ` Hannes Reinecke
2017-02-06 16:00   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 32/39] megaraid_sas: Bail out the driver load if ld_list_query fails Shivasharan S
2017-02-06 11:28   ` Hannes Reinecke
2017-02-06 16:01   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 33/39] megaraid_sas: call flush_scheduled_work during controller shutdown/detach Shivasharan S
2017-02-06 11:28   ` Hannes Reinecke
2017-02-06 16:05   ` Tomas Henzl
2017-02-06 17:18     ` Kashyap Desai
2017-02-07  8:50     ` Kashyap Desai
2017-02-06 10:00 ` [PATCH 34/39] megaraid_sas: Use synchronize_irq to wait for IRQs to complete Shivasharan S
2017-02-06 11:29   ` Hannes Reinecke
2017-02-06 16:07   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 35/39] megaraid_sas: Increase internal command pool Shivasharan S
2017-02-06 11:29   ` Hannes Reinecke
2017-02-06 16:08   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 36/39] megaraid_sas: Cleanup VD_EXT_DEBUG and SPAN_DEBUG related debug prints Shivasharan S
2017-02-06 11:30   ` Hannes Reinecke
2017-02-06 16:09   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 37/39] megaraid_sas: Indentation and smatch warning fixes Shivasharan S
2017-02-06 11:30   ` Hannes Reinecke
2017-02-06 16:13   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 38/39] megaraid_sas: Change RAID_1_10_RMW_CMDS to RAID_1_PEER_CMDS and set value to 2 Shivasharan S
2017-02-06 11:31   ` Hannes Reinecke
2017-02-06 16:14   ` Tomas Henzl
2017-02-06 10:00 ` [PATCH 39/39] megaraid_sas: driver version upgrade Shivasharan S
2017-02-06 11:31   ` Hannes Reinecke
2017-02-06 16:14   ` Tomas Henzl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1486375212-17329-2-git-send-email-shivasharan.srikanteshwara@broadcom.com \
    --to=shivasharan.srikanteshwara@broadcom.com \
    --cc=hare@suse.com \
    --cc=jejb@linux.vnet.ibm.com \
    --cc=kashyap.desai@broadcom.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=sumit.saxena@broadcom.com \
    --cc=thenzl@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.