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/