Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1715996 > unrolled thread

[Patch v2 14/19] CIFS: SMBD: Deregister memory when finishing SMB write

Started byLong Li <longli@exchange.microsoft.com>
First post2017-08-20 21:10 +0200
Last post2017-08-20 21:10 +0200
Articles 1 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [Patch v2 14/19] CIFS: SMBD: Deregister memory when finishing SMB write Long Li <longli@exchange.microsoft.com> - 2017-08-20 21:10 +0200

#1715996 — [Patch v2 14/19] CIFS: SMBD: Deregister memory when finishing SMB write

FromLong Li <longli@exchange.microsoft.com>
Date2017-08-20 21:10 +0200
Subject[Patch v2 14/19] CIFS: SMBD: Deregister memory when finishing SMB write
Message-ID<ugDLH-2xW-19@gated-at.bofh.it>
From: Long Li <longli@microsoft.com>

On write I/O finish, deregister the memory region if this was for a RDMA read. The call to smbd_deregister_mr will do local invalidation and possibly wait, if remote invalidate is not used.

Signed-off-by: Long Li <longli@microsoft.com>
---
 fs/cifs/smb2pdu.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
index 5581afd..5551053 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -2666,6 +2666,18 @@ smb2_writev_callback(struct mid_q_entry *mid)
 		break;
 	}
 
+	/*
+	 * If this wdata has a memory registered, the MR can be freed
+	 * The number of MRs available is limited, it's important to recover
+	 * used MR as soon as I/O is finished. Hold MR longer in the later
+	 * I/O process can possibly result in I/O deadlock due to lack of MR
+	 * to send request on I/O retry
+	 */
+	if (wdata->mr) {
+		smbd_deregister_mr(wdata->mr);
+		wdata->mr = NULL;
+	}
+
 	if (wdata->result)
 		cifs_stats_fail_inc(tcon, SMB2_WRITE_HE);
 
-- 
2.7.4

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web