* [PATCH v2 0/2] fsi: sbefifo: Add sysfs file indicating a timeout error @ 2021-10-19 21:17 Eddie James 2021-10-19 21:17 ` [PATCH v2 1/2] docs: ABI: testing: Document the SBEFIFO timeout interface Eddie James 2021-10-19 21:17 ` [PATCH v2 2/2] fsi: sbefifo: Add sysfs file indicating a timeout error Eddie James 0 siblings, 2 replies; 3+ messages in thread From: Eddie James @ 2021-10-19 21:17 UTC (permalink / raw) To: linux-fsi; +Cc: linux-kernel, jk, joel, alistair, eajames Add a sysfs file in the SBEFIFO device driver to indicate a timeout error, and notify pollers when a timeout occurs. Document the file in the testing directory. Changes since v1: - Add the documentation Eddie James (2): docs: ABI: testing: Document the SBEFIFO timeout interface fsi: sbefifo: Add sysfs file indicating a timeout error .../ABI/testing/sysfs-bus-fsi-devices-sbefifo | 10 ++++++++++ drivers/fsi/fsi-sbefifo.c | 16 ++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-bus-fsi-devices-sbefifo -- 2.27.0 ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v2 1/2] docs: ABI: testing: Document the SBEFIFO timeout interface 2021-10-19 21:17 [PATCH v2 0/2] fsi: sbefifo: Add sysfs file indicating a timeout error Eddie James @ 2021-10-19 21:17 ` Eddie James 2021-10-19 21:17 ` [PATCH v2 2/2] fsi: sbefifo: Add sysfs file indicating a timeout error Eddie James 1 sibling, 0 replies; 3+ messages in thread From: Eddie James @ 2021-10-19 21:17 UTC (permalink / raw) To: linux-fsi; +Cc: linux-kernel, jk, joel, alistair, eajames Add documentation for the new sysfs entry that indicates whether or not the SBE has timed out. Signed-off-by: Eddie James <eajames@linux.ibm.com> --- .../ABI/testing/sysfs-bus-fsi-devices-sbefifo | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-bus-fsi-devices-sbefifo diff --git a/Documentation/ABI/testing/sysfs-bus-fsi-devices-sbefifo b/Documentation/ABI/testing/sysfs-bus-fsi-devices-sbefifo new file mode 100644 index 000000000000..531fe9d6b40a --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-fsi-devices-sbefifo @@ -0,0 +1,10 @@ +What: /sys/bus/fsi/devices/XX.XX.00:06/sbefifoX/timeout +KernelVersion: 5.15 +Contact: eajames@linux.ibm.com +Description: + Indicates whether or not this SBE device has experienced a + timeout; i.e. the SBE did not respond within the time allotted + by the driver. A value of 1 indicates that a timeout has + ocurred and no transfers have completed since the timeout. A + value of 0 indicates that no timeout has ocurred, or if one + has, more recent transfers have completed successful. -- 2.27.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v2 2/2] fsi: sbefifo: Add sysfs file indicating a timeout error 2021-10-19 21:17 [PATCH v2 0/2] fsi: sbefifo: Add sysfs file indicating a timeout error Eddie James 2021-10-19 21:17 ` [PATCH v2 1/2] docs: ABI: testing: Document the SBEFIFO timeout interface Eddie James @ 2021-10-19 21:17 ` Eddie James 1 sibling, 0 replies; 3+ messages in thread From: Eddie James @ 2021-10-19 21:17 UTC (permalink / raw) To: linux-fsi; +Cc: linux-kernel, jk, joel, alistair, eajames The SBEFIFO timeout error requires special handling in userspace to do recovery operations. Add a sysfs file to indicate a timeout error, and notify pollers when a timeout occurs. Signed-off-by: Eddie James <eajames@linux.ibm.com> Reviewed-by: Joel Stanley <joel@jms.id.au> --- drivers/fsi/fsi-sbefifo.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/fsi/fsi-sbefifo.c b/drivers/fsi/fsi-sbefifo.c index 84cb965bfed5..b414ab4431ef 100644 --- a/drivers/fsi/fsi-sbefifo.c +++ b/drivers/fsi/fsi-sbefifo.c @@ -124,6 +124,7 @@ struct sbefifo { bool broken; bool dead; bool async_ffdc; + bool timed_out; }; struct sbefifo_user { @@ -136,6 +137,14 @@ struct sbefifo_user { static DEFINE_MUTEX(sbefifo_ffdc_mutex); +static ssize_t timeout_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct sbefifo *sbefifo = container_of(dev, struct sbefifo, dev); + + return sysfs_emit(buf, "%d\n", sbefifo->timed_out ? 1 : 0); +} +static DEVICE_ATTR_RO(timeout); static void __sbefifo_dump_ffdc(struct device *dev, const __be32 *ffdc, size_t ffdc_sz, bool internal) @@ -462,11 +471,14 @@ static int sbefifo_wait(struct sbefifo *sbefifo, bool up, break; } if (!ready) { + sysfs_notify(&sbefifo->dev.kobj, NULL, dev_attr_timeout.attr.name); + sbefifo->timed_out = true; dev_err(dev, "%s FIFO Timeout ! status=%08x\n", up ? "UP" : "DOWN", sts); return -ETIMEDOUT; } dev_vdbg(dev, "End of wait status: %08x\n", sts); + sbefifo->timed_out = false; *status = sts; return 0; @@ -993,6 +1005,8 @@ static int sbefifo_probe(struct device *dev) child_name); } + device_create_file(&sbefifo->dev, &dev_attr_timeout); + return 0; err_free_minor: fsi_free_minor(sbefifo->dev.devt); @@ -1018,6 +1032,8 @@ static int sbefifo_remove(struct device *dev) dev_dbg(dev, "Removing sbefifo device...\n"); + device_remove_file(&sbefifo->dev, &dev_attr_timeout); + mutex_lock(&sbefifo->lock); sbefifo->dead = true; mutex_unlock(&sbefifo->lock); -- 2.27.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-10-19 21:18 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-10-19 21:17 [PATCH v2 0/2] fsi: sbefifo: Add sysfs file indicating a timeout error Eddie James 2021-10-19 21:17 ` [PATCH v2 1/2] docs: ABI: testing: Document the SBEFIFO timeout interface Eddie James 2021-10-19 21:17 ` [PATCH v2 2/2] fsi: sbefifo: Add sysfs file indicating a timeout error Eddie James
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.