Re: Fwd: Adding timeouts to device access?

Takashi Sakamoto <[email protected]> Sun, 29 Jun 2025 23:01:19 +0900
Newsgroups gmane.linux.kernel.firewire.devel
Message-ID <[email protected]>
Hi,

On Sun, Jun 29, 2025 at 02:32:49PM +1000, 小太 wrote:
> The Firewire adapter is an old HP HI349 PCIe card (lspci info below), and
> it's connected to an M-Audio Profire 610 audio interface.
> CPU is a AMD 3960X on a TRX40 PRO WIFI motherboard

This is the first time I've been involved with Agere FW533. Anyway
thanks for the information.

> The hardware generally only stops responding when lights or exhaust fans
> are turned off on the same electrical circuit as the computer, but it's
> very infrequent. Perhaps from EMI or a voltage spike...?
> I originally had a generic chinese adapter (don't have lspci details,
> sorry) that I swapped out because it was a much more frequent issue on that
> one, and it mostly went away with the HP adapter.
> 
> After the failure occurs, I have to power cycle the computer a few times
> before everything is working again (for both fw0 and fw1 devices to be
> detected).
> If I don't keep on power cycling until it works again, but instead:
>  1. Disconnect the Profire 610 (fw1)
>  2. Immediately power cycle
>  3. --> The Firewire adapter (fw0) gets detected fine
>  4. Unload firewire_ohci (modprobe -r firewire_ohci)
>  5. Reconnect the Profire 610
>  6. Load firewire_ohci (modprobe firewire_ohci)
>  7. --> The Firewire adapter is not detected at all
>  8. Unload firewire_ohci again (modprobe -r firewire_ohci)
>  9. Disconnect the Profire 610
>  10. Load firewire_ohci again (modprobe firewire_ohci)
>  11. --> The Firewire adapter is detected again
> 
> If I mess around with the combination of reloading the firewire_ohci
> module, connecting/disconnecting the Profire 610, and probing things with
> FFADO, eventually a modprobe hangs indefinitely on wait_for_completion() in
> the kernel with the dmesg logs in my original message.
> Sometimes it even prevents systemd from powering off the computer (because
> it's waiting for modprobe to exit from a SIGKILL...), which is why I wanted
> to update the driver

Two kernel messages are in your first post. The first one records that
the system does not execute interrupt service routine for hardIRQ which
should be triggered against any command request to transfer asynchronous packet
when retrieving the detected node device. The second one records that the
reference count of fw_card instance could not reach zero even if waiting so
long when modprobe(8) executes the delete_module system call.

I guess the cause of later message is the lost of hardIRQ in the first
message, however, I would like you to compare timestamps for these
messages.


Thanks

Takashi Sakamoto


_______________________________________________
mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/linux1394-devel