[PATCH v2 0/4] Add sysfs interface to switchtec-dma
Logan Gunthorpe <[email protected]> Mon, 27 Jul 2026 12:48:40 -0600
| Newsgroups | org.kernel.vger.dmaengine,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
This patch set adds a handful of sysfs attributes to the switchtec-dma driver. The first two patches clean up and generalize the technique that ioat used to add sysfs attributes to a dma channel. The other two patches add a couple different sets of sysfs attributes that are useful in configuring and monitoring the hardware. This patch set is based on the miscellaneous fixes series I sent earlier[1]. Logan [1] https://lore.kernel.org/all/[email protected]/ Changes since v1: - Replaced the per-channel embedded-kobject approach entirely with a new dma_device.chan_groups mechanism that attaches driver sysfs attributes directly to the channel's existing struct device instead of a second, separately-managed kobject. (Per Sashiko) - Fixed the busy-channel check in perf_cfg_store(): it now returns -EBUSY instead of falsely reporting success, and the racy lockless chan->client_count check has been replaced with a hw_cfg_locked flag that's set/cleared under hw_ctrl_lock from alloc/free_chan_resources(), closing a TOCTOU window against concurrent channel allocation. (Per Sashiko) - Took the hw_ctrl_lock around the perf_cfg read-modify-write so concurrent sysfs writes to different config attributes can't interleave and lose an update. (Per Sashiko) - Converted latency_selector_show() from strcat() to sysfs_emit()/sysfs_emit_at(). (Per Sashiko) - The PCI1008 device ID patch has been removed from this series, expanded and sent separately. Logan Gunthorpe (4): dmaengine: add per-channel sysfs attribute groups via chan_groups dmaengine: ioatdma: convert per-channel sysfs to chan_groups dmaengine: switchtec-dma: add config sysfs attributes dmaengine: switchtec-dma: add pmon sysfs attributes drivers/dma/dmaengine.c | 27 +++ drivers/dma/dmaengine.h | 19 ++ drivers/dma/ioat/dma.h | 6 +- drivers/dma/ioat/init.c | 5 +- drivers/dma/ioat/sysfs.c | 166 ++++++------- drivers/dma/switchtec_dma.c | 452 ++++++++++++++++++++++++++++++++++++ include/linux/dmaengine.h | 4 + 7 files changed, 569 insertions(+), 110 deletions(-) base-commit: 0428de2e30c4690e119db5ee4b27725216b61de8 -- 2.47.3