On Thu, Oct 13, 2011 at 04:56:17PM -0700, Roland Dreier wrote: > I agree it doesn't really make sense to immediately requeue a > request that you didn't have room for in your queue a moment ago. > > Really it seems we should pause processing until we have something > complete and make room in the queue again. Not sure how to fit > that into the overal target architecture. We already do an explicit sleep in transport_tcq_window_closed if we exhaust the queue depth. Note that the code doing that is fairly non-optimal as it simply does an msleep in whatever context it is called, which might either be the fabrics thread calling in the first time, or the main transport processing thread (which also handles I/O completions). Having one common way to handle this would be good, but simply doing a context switch without explicit delay isn't going to help you anything. On a lightly loadeded SMP systems the context switch is basically not noticable in the grander scheme of things. Sorting out both the explicit QUEUE FULL handling and that delay are the major items blocking the workqueue conversion of the target code for me at the moment. -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html