summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/megaraid
diff options
context:
space:
mode:
authorShivasharan S <shivasharan.srikanteshwara@broadcom.com>2018-01-05 08:27:46 -0500
committerMartin K. Petersen <martin.petersen@oracle.com>2018-01-10 23:25:18 -0500
commit88d155c61acd3fb852c0a20be2d840f0765cae7c (patch)
treee6ad07be6e6adcba2705d0ba21c7b6c8c08d04c7 /drivers/scsi/megaraid
parent4959e61b83a3bc53d49b023dcb4dc50150c2795e (diff)
scsi: megaraid_sas: Expose fw_cmds_outstanding through sysfs
Expose FW outstanding commands (fw_outstanding) through sysfs interface. This helps in debugging certain performance issues in the field. Signed-off-by: Sasikumar Chandrasekaran <sasikumar.pc@broadcom.com> Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/megaraid')
-rw-r--r--drivers/scsi/megaraid/megaraid_sas_base.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index 6da2766694cb..40775408c222 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -3122,6 +3122,16 @@ megasas_ldio_outstanding_show(struct device *cdev, struct device_attribute *attr
3122 return snprintf(buf, PAGE_SIZE, "%d\n", atomic_read(&instance->ldio_outstanding)); 3122 return snprintf(buf, PAGE_SIZE, "%d\n", atomic_read(&instance->ldio_outstanding));
3123} 3123}
3124 3124
3125static ssize_t
3126megasas_fw_cmds_outstanding_show(struct device *cdev,
3127 struct device_attribute *attr, char *buf)
3128{
3129 struct Scsi_Host *shost = class_to_shost(cdev);
3130 struct megasas_instance *instance = (struct megasas_instance *)shost->hostdata;
3131
3132 return snprintf(buf, PAGE_SIZE, "%d\n", atomic_read(&instance->fw_outstanding));
3133}
3134
3125static DEVICE_ATTR(fw_crash_buffer, S_IRUGO | S_IWUSR, 3135static DEVICE_ATTR(fw_crash_buffer, S_IRUGO | S_IWUSR,
3126 megasas_fw_crash_buffer_show, megasas_fw_crash_buffer_store); 3136 megasas_fw_crash_buffer_show, megasas_fw_crash_buffer_store);
3127static DEVICE_ATTR(fw_crash_buffer_size, S_IRUGO, 3137static DEVICE_ATTR(fw_crash_buffer_size, S_IRUGO,
@@ -3132,6 +3142,8 @@ static DEVICE_ATTR(page_size, S_IRUGO,
3132 megasas_page_size_show, NULL); 3142 megasas_page_size_show, NULL);
3133static DEVICE_ATTR(ldio_outstanding, S_IRUGO, 3143static DEVICE_ATTR(ldio_outstanding, S_IRUGO,
3134 megasas_ldio_outstanding_show, NULL); 3144 megasas_ldio_outstanding_show, NULL);
3145static DEVICE_ATTR(fw_cmds_outstanding, S_IRUGO,
3146 megasas_fw_cmds_outstanding_show, NULL);
3135 3147
3136struct device_attribute *megaraid_host_attrs[] = { 3148struct device_attribute *megaraid_host_attrs[] = {
3137 &dev_attr_fw_crash_buffer_size, 3149 &dev_attr_fw_crash_buffer_size,
@@ -3139,6 +3151,7 @@ struct device_attribute *megaraid_host_attrs[] = {
3139 &dev_attr_fw_crash_state, 3151 &dev_attr_fw_crash_state,
3140 &dev_attr_page_size, 3152 &dev_attr_page_size,
3141 &dev_attr_ldio_outstanding, 3153 &dev_attr_ldio_outstanding,
3154 &dev_attr_fw_cmds_outstanding,
3142 NULL, 3155 NULL,
3143}; 3156};
3144 3157