Commit c6fb88a
committed
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 <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Takashi Sakamoto <[email protected]>1 parent 7d35a00 commit c6fb88a
File tree
4 files changed
+35
-6
lines changed- drivers/firewire
- include/linux
4 files changed
+35
-6
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
571 | 571 | | |
572 | 572 | | |
573 | 573 | | |
574 | | - | |
575 | | - | |
| 574 | + | |
| 575 | + | |
576 | 576 | | |
| 577 | + | |
577 | 578 | | |
578 | 579 | | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
579 | 598 | | |
580 | 599 | | |
581 | 600 | | |
| |||
584 | 603 | | |
585 | 604 | | |
586 | 605 | | |
587 | | - | |
| 606 | + | |
| 607 | + | |
588 | 608 | | |
| 609 | + | |
589 | 610 | | |
| 611 | + | |
590 | 612 | | |
591 | 613 | | |
592 | 614 | | |
| |||
708 | 730 | | |
709 | 731 | | |
710 | 732 | | |
| 733 | + | |
| 734 | + | |
711 | 735 | | |
712 | 736 | | |
713 | 737 | | |
| |||
719 | 743 | | |
720 | 744 | | |
721 | 745 | | |
| 746 | + | |
722 | 747 | | |
723 | 748 | | |
724 | 749 | | |
| |||
727 | 752 | | |
728 | 753 | | |
729 | 754 | | |
| 755 | + | |
| 756 | + | |
730 | 757 | | |
731 | 758 | | |
732 | 759 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
119 | | - | |
| 118 | + | |
| 119 | + | |
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3827 | 3827 | | |
3828 | 3828 | | |
3829 | 3829 | | |
3830 | | - | |
| 3830 | + | |
3831 | 3831 | | |
3832 | 3832 | | |
3833 | 3833 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
| 137 | + | |
| 138 | + | |
137 | 139 | | |
138 | 140 | | |
139 | 141 | | |
| |||
0 commit comments