Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

scsi: pm80xx: Add sysfs attribute to track RAAE count

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.

Using the 'ctl_raae_count' sysfs variable we can see ticks incrementing:

linux-9saw:~# cat /sys/class/scsi_host/host*/ctl_raae_count
0x00002245
0x00002253
0x0000225e

Link: https://lore.kernel.org/r/20210415103352.3580-4-Viswas.G@microchip.com
Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Vishakha Channapattan <vishakhavc@google.com>
Signed-off-by: Viswas G <Viswas.G@microchip.com>
Signed-off-by: Ruksar Devadi <Ruksar.devadi@microchip.com>
Signed-off-by: Ashokkumar N <Ashokkumar.N@microchip.com>
Signed-off-by: Radha Ramachandran <radha@google.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Vishakha Channapattan and committed by
Martin K. Petersen
dd49ded8 a4c55e16

+22
+22
drivers/scsi/pm8001/pm8001_ctl.c
··· 932 932 } 933 933 static DEVICE_ATTR_RO(ctl_hmi_error); 934 934 935 + /** 936 + * ctl_raae_count_show - controller raae count check 937 + * @cdev: pointer to embedded class device 938 + * @buf: the buffer returned 939 + * 940 + * A sysfs 'read-only' shost attribute. 941 + */ 942 + 943 + static ssize_t ctl_raae_count_show(struct device *cdev, 944 + struct device_attribute *attr, char *buf) 945 + { 946 + struct Scsi_Host *shost = class_to_shost(cdev); 947 + struct sas_ha_struct *sha = SHOST_TO_SAS_HA(shost); 948 + struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; 949 + unsigned int raaecnt; 950 + 951 + raaecnt = pm8001_mr32(pm8001_ha->general_stat_tbl_addr, 12); 952 + return sysfs_emit(buf, "0x%08x\n", raaecnt); 953 + } 954 + static DEVICE_ATTR_RO(ctl_raae_count); 955 + 935 956 struct device_attribute *pm8001_host_attrs[] = { 936 957 &dev_attr_interface_rev, 937 958 &dev_attr_controller_fatal_error, ··· 978 957 &dev_attr_inc_fw_ver, 979 958 &dev_attr_ctl_mpi_state, 980 959 &dev_attr_ctl_hmi_error, 960 + &dev_attr_ctl_raae_count, 981 961 NULL, 982 962 }; 983 963