1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-23 16:53:58 -05:00
linux/drivers
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
..
accel
accessibility
acpi RISC-V Patches for the 6.11 Merge Window, Part 2 2024-07-27 10:14:34 -07:00
amba
android
ata
atm
auxdisplay auxdisplay updates for v6.11 2024-07-26 11:04:28 -07:00
base regmap: Fix for v6.11 2024-07-27 12:26:09 -07:00
bcma
block block-6.11-20240726 2024-07-27 15:28:53 -07:00
bluetooth Bluetooth: btmtk: remove #ifdef around declarations 2024-07-26 10:56:54 -04:00
bus Devicetree fixes for 6.11, part 1 2024-07-27 12:46:16 -07:00
cache cache: StarFive: Require a 64-bit system 2024-08-01 07:15:02 -07:00
cdrom
cdx
char
clk Devicetree fixes for 6.11, part 1 2024-07-27 12:46:16 -07:00
clocksource
comedi
connector
counter
cpufreq
cpuidle
crypto
cxl CXL for v6.11 merge window 2024-07-28 09:33:28 -07:00
dax
dca
devfreq
dio
dma
dma-buf
dpll
edac minmax: make generic MIN() and MAX() macros available everywhere 2024-07-28 15:49:18 -07:00
eisa
extcon
firewire firewire: core: allocate workqueue to handle isochronous contexts in card 2024-09-04 21:51:50 +09:00
firmware ARM updates for v6.11-rc1 2024-07-29 10:33:51 -07:00
fpga
fsi
gnss
gpio gpio fixes for v6.11-rc1 2024-07-27 12:54:06 -07:00
gpu drm fixes for 6.11-rc2 2024-08-02 08:59:09 -07:00
greybus
hid for-linus-2024072901 2024-07-29 13:07:05 -07:00
hsi
hte
hv
hwmon minmax: make generic MIN() and MAX() macros available everywhere 2024-07-28 15:49:18 -07:00
hwspinlock
hwtracing
i2c
i3c I3C for 6.11 2024-07-27 10:53:06 -07:00
idle
iio
infiniband
input Input: MT - limit max slots 2024-07-29 10:44:48 -07:00
interconnect
iommu IOMMU Fixes for Linux v6.11-rc1 2024-07-27 12:39:55 -07:00
ipack
irqchip A couple of fixes for interrupt chip drivers: 2024-08-04 08:36:57 -07:00
isdn
leds
macintosh sysctl: treewide: constify the ctl_table argument of proc_handlers 2024-07-25 12:58:36 -07:00
mailbox
mcb
md minmax: add a few more MIN_T/MAX_T users 2024-07-28 13:41:14 -07:00
media media fixes for v6.11-rc2 2024-08-04 08:12:33 -07:00
memory
memstick
message
mfd Devicetree fixes for 6.11, part 1 2024-07-27 12:46:16 -07:00
misc
mmc
most
mtd This pull request contains updates (actually, just fixes) for UBI and UBIFS: 2024-07-28 11:51:51 -07:00
mux
net Including fixes from wireless, bleutooth, BPF and netfilter. 2024-08-01 09:42:09 -07:00
nfc minmax: make generic MIN() and MAX() macros available everywhere 2024-07-28 15:49:18 -07:00
ntb
nubus
nvdimm
nvme nvme fixes for Linux 6.11 2024-07-26 08:06:15 -06:00
nvmem
of
opp
parisc
parport sysctl: treewide: constify the ctl_table argument of proc_handlers 2024-07-25 12:58:36 -07:00
pci PCI: pciehp: Retain Power Indicator bits for userspace indicators 2024-08-01 12:58:03 -05:00
pcmcia
peci
perf perf: riscv: Fix selecting counters in legacy mode 2024-08-01 07:15:13 -07:00
phy
pinctrl
platform chrome-platform fixes for v6.11-rc2 2024-07-30 12:53:52 -07:00
pmdomain
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator regulator: Fixes for v6.11 2024-07-27 12:27:52 -07:00
remoteproc
reset
rpmsg
rtc
s390 s390/cio: Add missing MODULE_DESCRIPTION() macros 2024-07-31 16:30:20 +02:00
sbus
scsi SCSI fixes on 20240803 2024-08-03 15:12:56 -07:00
sh
siox
slimbus
soc
soundwire
spi spi: Fixes for v6.11 2024-07-27 12:29:10 -07:00
spmi
ssb
staging minmax: make generic MIN() and MAX() macros available everywhere 2024-07-28 15:49:18 -07:00
target
tc
tee
thermal Merge branch 'thermal-intel' 2024-07-31 12:31:27 +02:00
thunderbolt
tty Devicetree fixes for 6.11, part 1 2024-07-27 12:46:16 -07:00
ufs Merge branch '6.11/scsi-queue' into 6.11/scsi-fixes 2024-07-29 21:46:16 -04:00
uio
usb Devicetree fixes for 6.11, part 1 2024-07-27 12:46:16 -07:00
vdpa virtio: fixes 2024-07-29 12:53:37 -07:00
vfio
vhost
video
virt
virtio virtio: fixes 2024-07-29 12:53:37 -07:00
w1
watchdog
xen
zorro
Kconfig
Makefile