Re: function call fw_iso_resource_mange(..) (core-iso.c) does not return

From: Stephan Gatzka
Date: Wed May 22 2013 - 05:08:49 EST



Wait a minute --- I seem to be reading of Xenomai RT extensions for the
first time in this thread. Has the problem been reproduced on a mainline
kernel too? (Mainline plus Ralf's firewire upper layer driver maybe, but
without any other 3rd party stuff please. Actually the issue should be
reproducible even without an upper layer driver performing
fw_iso_resource_manage in fw_workqueue context, shouldn't it?)

Unfortunately it's not that easy. While I agree that it should be reproducible just with mainline stuff, we have to force our system into the situation that it "thinks" it's under memory pressure to hand over the work to the rescuer thread. It looks that a simple printk from a different driver might lead to that situation on our system.

As a first fix, I would say we have at least bring bus_reset_work() running on its own workqueue because otherwise we cannot guarantee progress of bus_reset_work under memory pressure.


There is quite a bit going on in firewire-ohci's and firewire-core's parts
of self-ID-complete event handling. But I suspect that stuff like that is
still not in the league for which CPU_INTENSIVE was intended for
(cryptography etc.).

Some advice from Tejun would be great here...


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/