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

From: Stephan Gatzka
Date: Wed May 22 2013 - 09:06:49 EST


Solution 2 --- Perform interdependent works in different queue instances.
(Keep the WQ_MEM_RECLAIM flag set at those workqueues that have to take
work which is necessary for progress of memory reclaim. If this and only
this solution is employed for an SBP-2 initiator, we need two if not more
WQ_MEM_RECLAIM workqueue instances.)

I would go for this solution. I have no problems with lots of workqueues around, because there is only a relatively small structure required for each workqueue.


Solution 3 --- Remove the dependency between worklets:

Solution 3a --- Remove the lower-level worklet altogether.
E.g. reimplement the lower-level worklet as a tasklet.

No, I like the workqueue context. :)


Solution 3b --- Remove the higher-level worklet's dependency.
E.g. reimplement the higher-level worklet such that it is woken by
a timer and then aborts or reschedules ( = lets the lower-level
worklet bubble up in the queue).

This looks more difficult to me and not so easy to test.

Stephan
--
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/