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 iop0 count

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

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

linux-9saw:~# cat /sys/class/scsi_host/host*/ctl_iop0_count
0x000000a3
0x000001db
0x000001e4
0x000001e7

Link: https://lore.kernel.org/r/20210415103352.3580-5-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
0602624a dd49ded8

+22
+22
drivers/scsi/pm8001/pm8001_ctl.c
··· 953 953 } 954 954 static DEVICE_ATTR_RO(ctl_raae_count); 955 955 956 + /** 957 + * ctl_iop0_count_show - controller iop0 count check 958 + * @cdev: pointer to embedded class device 959 + * @buf: the buffer returned 960 + * 961 + * A sysfs 'read-only' shost attribute. 962 + */ 963 + 964 + static ssize_t ctl_iop0_count_show(struct device *cdev, 965 + struct device_attribute *attr, char *buf) 966 + { 967 + struct Scsi_Host *shost = class_to_shost(cdev); 968 + struct sas_ha_struct *sha = SHOST_TO_SAS_HA(shost); 969 + struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; 970 + unsigned int iop0cnt; 971 + 972 + iop0cnt = pm8001_mr32(pm8001_ha->general_stat_tbl_addr, 16); 973 + return sysfs_emit(buf, "0x%08x\n", iop0cnt); 974 + } 975 + static DEVICE_ATTR_RO(ctl_iop0_count); 976 + 956 977 struct device_attribute *pm8001_host_attrs[] = { 957 978 &dev_attr_interface_rev, 958 979 &dev_attr_controller_fatal_error, ··· 1000 979 &dev_attr_ctl_mpi_state, 1001 980 &dev_attr_ctl_hmi_error, 1002 981 &dev_attr_ctl_raae_count, 982 + &dev_attr_ctl_iop0_count, 1003 983 NULL, 1004 984 }; 1005 985