1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-23 08:35:19 -05:00
linux/drivers/firewire
Takashi Sakamoto c6fb88a527 firewire: core: allocate workqueue to handle isochronous contexts in card
This commit adds a workqueue dedicated for isochronous context processing.

The workqueue is allocated per instance of fw_card structure to satisfy the
following characteristics descending from 1394 OHCI specification:

In 1394 OHCI specification, memory pages are reserved to each isochronous
context dedicated to DMA transmission. It allows to operate these
per-context pages concurrently. Software can schedule hardware interrupt
for several isochronous context to the same cycle, thus WQ_UNBOUND is
specified. Additionally, it is sleepable to operate the content of pages,
thus WQ_BH is not used.

The isochronous context delivers the packets with time stamp, thus
WQ_HIGHPRI is specified for semi real-time data such as IEC 61883-1/6
protocol implemented by ALSA firewire stack. The isochronous context is not
used by the implementation of SCSI over IEEE1394 protocol (sbp2), thus
WQ_MEM_RECLAIM is not specified.

It is useful for users to adjust cpu affinity of the workqueue depending
on their work loads, thus WQ_SYS is specified to expose the attributes to
user space.

Tested-by: Edmund Raile <edmund.raile@protonmail.com>
Link: https://lore.kernel.org/r/20240904125155.461886-2-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
2024-09-04 21:51:50 +09:00
..
.kunitconfig firewire: ohci: add static inline functions to deserialize for Self-ID DMA operation 2024-07-04 08:12:48 +09:00
core-card.c firewire: core: allocate workqueue to handle isochronous contexts in card 2024-09-04 21:51:50 +09:00
core-cdev.c firewire: core: use xarray instead of idr to maintain client resource 2024-08-13 08:52:10 +09:00
core-device.c firewire: core: update fw_device outside of device_find_child() 2024-08-20 22:21:32 +09:00
core-iso.c firewire: core: use guard macro to maintain properties of fw_card 2024-08-05 17:54:05 +09:00
core-topology.c firewire: core: use guard macro to maintain properties of fw_card 2024-08-05 17:54:05 +09:00
core-trace.c firewire: core: move copy_port_status() helper function to TP_fast_assign() block 2024-07-12 14:34:12 +09:00
core-transaction.c firewire: core: replace IDR with XArray to maintain fw_device 2024-08-12 10:42:50 +09:00
core.h firewire: core: allocate workqueue to handle isochronous contexts in card 2024-09-04 21:51:50 +09:00
device-attribute-test.c
init_ohci1394_dma.c
Kconfig firewire: ohci: add static inline functions to deserialize for Self-ID DMA operation 2024-07-04 08:12:48 +09:00
Makefile firewire: ohci: add static inline functions to deserialize for Self-ID DMA operation 2024-07-04 08:12:48 +09:00
net.c
nosy-user.h
nosy.c
nosy.h
ohci-serdes-test.c firewire: ohci: add static inline functions to serialize/deserialize data of IT DMA 2024-08-02 09:36:05 +09:00
ohci.c firewire: core: allocate workqueue to handle isochronous contexts in card 2024-09-04 21:51:50 +09:00
ohci.h firewire: ohci: add static inline functions to serialize/deserialize data of IT DMA 2024-08-02 09:36:05 +09:00
packet-header-definitions.h firewire: core: arrangement header inclusion for tracepoints events 2024-06-17 08:37:03 +09:00
packet-serdes-test.c firewire: core: add tests for serialization/deserialization of phy config packet 2024-06-17 08:37:03 +09:00
phy-packet-definitions.h firewire: core: add tests for serialization/deserialization of phy config packet 2024-06-17 08:37:03 +09:00
sbp2.c
self-id-sequence-helper-test.c firewire: core: add helper function to handle port status from self ID sequence and its KUnit test 2024-06-17 08:37:02 +09:00
uapi-test.c