Thread (56 messages) 56 messages, 6 authors, 2016-02-11
STALE3798d

[PATCH for-4.5 06/13] NVMe: Remove WQ_MEM_RECLAIM from nvme work queue

From: Keith Busch <hidden>
Date: 2016-02-11 14:52:14

On Wed, Feb 10, 2016@10:46:41AM -0800, Christoph Hellwig wrote:
On Wed, Feb 10, 2016@11:17:23AM -0700, Keith Busch wrote:
quoted
This isn't used for work in the memory reclaim path, and we may need
to sync with work queues that also are not flagged memory relaim. This
fixes a kernel warning if we ever do sync with such a work queue.
We do need it during memory reclaim: memory reclaim in general
does I/O, which can be on NVMe.  We then need the workqueue to
abort a command or reset an overloaded controller to make progress.
Not having WQ_MEM_RECLAIM risks deadlocks in heavily loaded systems.
There was a more obvious way to do this that took me another day to
see. We schedule remove_work on the system work queue, and all this
cleanup can happen there instead of in the reset_work on the nvme
work queue.

I will drop the unneeded patches from this series, and resubmit the rest
with the reviews, fixes, and recommended code changes and documentation.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help