On 2021-09-08 11:17:18 [+0900], Takashi Sakamoto wrote: > Hi, Hi, > According to the log, the task of 'pipewire-media-:2554' is blocked during > 122 seconds by call of 'wait_for_completion()' in code of > 'fw_run_transaction()'. This is odd in two points of transaction service > programmed in Linux FireWire subsystem: > > 1. The process context should be awakened by softIRQ context, which should > be scheduled by hwIRQ context for hardware interrupt of OHCI 1394 > controller. > 2. Even if the softIRQ context is not invoked, the process context > should be awakened by wheel timer context, which is scheduled to finish > the transaction several jiffies later (originally prepared for the case > of split-transaction). In the case, the result of transaction is > 'RCODE_CANCELLED'. Side note: David is using PREEMPT_RT and his problem can be reduced to plain vanilla with `threadirqs' boot option. Back in February I sent him a patch [0] which inlines the tasklet job as I assumed it is not good reset the IRQ-event in the tasklet/workqueue. It seemed to improve the situtation as it recognized the device attached to the bus but ended then in the same timeout behaviour as now. [0] https://https://lkml.kernel.org/r/.kernel.org/all/20210218083849.iitcrhdgv2oajfhv@xxxxxxxxxxxxx/ > Thanks > > Takashi Sakamoto Sebastian