Messages in this thread | | | Date | Mon, 20 Jun 2016 14:59:22 -0400 | From | Tejun Heo <> | Subject | Re: [RFC] IB/srp: Remove create_workqueue |
| |
Hello, Bart.
On Tue, Jun 07, 2016 at 01:00:13PM -0700, Bart Van Assche wrote: > > > > srp_remove_wq is used for SRP target port removal work only. This work is > > > > neither queued from inside a shrinker nor by the page writeback code so I > > > > think it is safe to drop WQ_MEM_RECLAIM. > > > > > > It should be able to use system_wq then. > > > > No. I have tried that but that resulted in a deadlock. > > See also commit bcc059103591 for the details.
So, create_workqueue() limits concurrency to 1 per cpu and if you have a dependency between two work items and they get scheduled on the same cpu they can deadlock. system_wq doesn't have that restriction and should be fine, AFAICS.
Thanks!
-- tejun
| |