On 05/03/2016 01:40 AM, Christoph Hellwig wrote:
This should still be the case - the max_active argument to alloc_workqueue just specified the amount of work_structs that may be executed on the workqueue concurrently, but each individual work_struct can only be executed once at a time. See the following paragraph in Documentation/workqueue.txt: "Note that the flag WQ_NON_REENTRANT no longer exists as all workqueues are now non-reentrant - any work item is guaranteed to be executed by at most one worker system-wide at any given time."
Thanks for the feedback. I had overlooked the find_worker_executing_work() call in __queue_work() in kernel/workqueue.c when I reviewed that code yesterday.
Bart. -- 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