[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160620185922.GQ3262@mtj.duckdns.org>
Date: Mon, 20 Jun 2016 14:59:22 -0400
From: Tejun Heo <tj@...nel.org>
To: Bart Van Assche <bart.vanassche@...disk.com>
Cc: Bhaktipriya Shridhar <bhaktipriya96@...il.com>,
Doug Ledford <dledford@...hat.com>,
Sean Hefty <sean.hefty@...el.com>,
Hal Rosenstock <hal.rosenstock@...il.com>,
"linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
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
Powered by blists - more mailing lists