Thread (18 messages) 18 messages, 3 authors, 2021-03-05
STALE1936d
Revisions (4)
  1. v1 current
  2. v2 [diff vs current]
  3. v3 [diff vs current]
  4. v4 [diff vs current]

[PATCH 2/7] pm80xx: Add sysfs attribute to track RAAE count

From: Viswas G <hidden>
Date: 2021-02-24 16:11:42
Subsystem: pmc sierra pm8001 driver, scsi subsystem, the rest · Maintainers: Jack Wang, "James E.J. Bottomley", "Martin K. Petersen", Linus Torvalds

From: Vishakha Channapattan <redacted>

A new sysfs variable 'ctl_raae_count' is being introduced that tells if
the controller is alive by indicating controller ticks. If on subsequent
run we see the ticks changing in RAAE count that indicates that
controller
is not dead.

Tested: Using 'ctl_raae_count' sysfs variable we can see ticks
incrementing
mvae14:~# cat  /sys/class/scsi_host/host*/ctl_raae_count
MSGUTCNT=0x00002245
MSGUTCNT=0x00002253
MSGUTCNT=0x0000225e

Signed-off-by: Vishakha Channapattan <redacted>
Signed-off-by: Viswas G <redacted>
Signed-off-by: Ruksar Devadi <redacted>
Signed-off-by: Ashokkumar N <redacted>
Signed-off-by: Radha Ramachandran <redacted>
---
 drivers/scsi/pm8001/pm8001_ctl.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
diff --git a/drivers/scsi/pm8001/pm8001_ctl.c b/drivers/scsi/pm8001/pm8001_ctl.c
index 035969ed1c2e..d415bb12718c 100644
--- a/drivers/scsi/pm8001/pm8001_ctl.c
+++ b/drivers/scsi/pm8001/pm8001_ctl.c
@@ -919,6 +919,30 @@ static ssize_t ctl_mpi_state_show(struct device *cdev,
 }
 static DEVICE_ATTR_RO(ctl_mpi_state);
 
+/**
+ * ctl_raae_count_show - controller raae count check
+ * @cdev: pointer to embedded class device
+ * @buf: the buffer returned
+ *
+ * A sysfs 'read-only' shost attribute.
+ */
+
+static ssize_t ctl_raae_count_show(struct device *cdev,
+		struct device_attribute *attr, char *buf)
+{
+	struct Scsi_Host *shost = class_to_shost(cdev);
+	struct sas_ha_struct *sha = SHOST_TO_SAS_HA(shost);
+	struct pm8001_hba_info *pm8001_ha = sha->lldd_ha;
+	unsigned int raaecnt = 0;
+	int c;
+
+	pm8001_dbg(pm8001_ha, IOCTL, "%s\n", __func__);
+	raaecnt = pm8001_mr32(pm8001_ha->general_stat_tbl_addr, 12);
+	c = sprintf(buf, "MSGUTCNT=0x%08x\n", raaecnt);
+	return c;
+}
+static DEVICE_ATTR_RO(ctl_raae_count);
+
 struct device_attribute *pm8001_host_attrs[] = {
 	&dev_attr_interface_rev,
 	&dev_attr_controller_fatal_error,
@@ -943,6 +967,7 @@ struct device_attribute *pm8001_host_attrs[] = {
 	&dev_attr_ila_version,
 	&dev_attr_inc_fw_ver,
 	&dev_attr_ctl_mpi_state,
+	&dev_attr_ctl_raae_count,
 	NULL,
 };
 
-- 
2.16.3
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help