Re: Flush warning
From: Leon Romanovsky <hidden>
Date: 2017-08-13 10:33:59
Also in:
linux-nvme
On Sun, Aug 13, 2017 at 02:14:58AM -0700, Sagi Grimberg wrote:
quoted
quoted
quoted
quoted
Does anyone else know?Consider that the ib_core can be used to back storage. Ie consider a situation where iSER/NFS/SRP needs to reconnect to respond to kernel paging/reclaim. On the surface it seems reasonable to me that these are on a reclaim path?I'm pretty sure that ULP connect will trigger memory allocations, which will fail under memory pressure... Maybe I'm missing something.quoted
quoted
hmm. That seems reasonable. Then I would think the nvme_rdma would also need to be using a reclaim workqueue. Sagi, Do you think I should add a private workqueue with WQ_MEM_RECLAIM to nvme_rdma vs using the system_wq? nvme/target probably needs one also...I'm not sure, being unable to flush system workqueue from CM context is somewhat limiting... We could use a private workqueue for nvmet teardowns but I'm not sure we want to do that.quoted
The workqueue which frees the memory and doesn't allocate memory during execution is supposed to be marked as WQ_MEM_RECLAIM. This flag will cause to priority increase for such workqueue during low memory conditions.Which to my understanding means that CM workqueue should not use it as on each CM connect, by definition the ULP allocates memory (qp, cq etc).
From my understanding too.
That workqueue was introduced in 2005, in a977049dacde
("[PATCH] IB: Add the kernel CM implementation"), it is not clear if it
was intentionally.
Hal,
do you remember the rationale there?
Thanks Attachments
- signature.asc [application/pgp-signature] 833 bytes