All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trond Myklebust <trondmy-7I+n7zu2hftEKMMhf/gKZA@public.gmane.org>
To: Chuck Lever <chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Cc: Linux RDMA Mailing List
	<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Linux NFS Mailing List
	<linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH v1 15/22] svcrdma: Clean up RPC-over-RDMA backchannel reply processing
Date: Sat, 7 Jan 2017 17:36:41 +0000	[thread overview]
Message-ID: <6566A5B5-DEB2-426F-BA6A-6D8FD32A48D3@primarydata.com> (raw)
In-Reply-To: <20170107171719.14126.10512.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>


> On Jan 7, 2017, at 12:17, Chuck Lever <chuck.lever@oracle.com> wrote:
> 
> Replace C structure-based XDR decoding with pointer arithmetic.
> Pointer arithmetic is considered more portable.
> 
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
> include/linux/sunrpc/svc_rdma.h            |    2 +-
> net/sunrpc/xprtrdma/svc_rdma_backchannel.c |   17 +++++++++++++----
> net/sunrpc/xprtrdma/svc_rdma_recvfrom.c    |   27 +++++++++++++++------------
> 3 files changed, 29 insertions(+), 17 deletions(-)
> 
> diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h
> index 531980b..9866e94 100644
> --- a/include/linux/sunrpc/svc_rdma.h
> +++ b/include/linux/sunrpc/svc_rdma.h
> @@ -184,7 +184,7 @@ static inline void svc_rdma_count_mappings(struct svcxprt_rdma *rdma,
> 
> /* svc_rdma_backchannel.c */
> extern int svc_rdma_handle_bc_reply(struct rpc_xprt *xprt,
> -				    struct rpcrdma_msg *rmsgp,
> +				    __be32 *rdma_resp,
> 				    struct xdr_buf *rcvbuf);
> 
> /* svc_rdma_marshal.c */
> diff --git a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c
> index 7d49545..6b3bbb6 100644
> --- a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c
> +++ b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c
> @@ -11,7 +11,16 @@
> 
> #undef SVCRDMA_BACKCHANNEL_DEBUG
> 
> -int svc_rdma_handle_bc_reply(struct rpc_xprt *xprt, struct rpcrdma_msg *rmsgp,
> +/**
> + * svc_rdma_handle_bc_reply - Process incoming backchannel reply
> + * @xprt: controlling backchannel transport
> + * @rdma_resp: pointer to incoming transport header
> + * @rcvbuf: XDR buffer into which to decode the reply
> + *
> + * Returns zero and fills @rcvbuf if successful. Otherwise a
> + * negative errno is returned.
> + */
> +int svc_rdma_handle_bc_reply(struct rpc_xprt *xprt, __be32 *rdma_resp,
> 			     struct xdr_buf *rcvbuf)
> {
> 	struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt);
> @@ -26,13 +35,13 @@ int svc_rdma_handle_bc_reply(struct rpc_xprt *xprt, struct rpcrdma_msg *rmsgp,
> 
> 	p = (__be32 *)src->iov_base;
> 	len = src->iov_len;
> -	xid = rmsgp->rm_xid;
> +	xid = *rdma_resp;
> 
> #ifdef SVCRDMA_BACKCHANNEL_DEBUG
> 	pr_info("%s: xid=%08x, length=%zu\n",
> 		__func__, be32_to_cpu(xid), len);
> 	pr_info("%s: RPC/RDMA: %*ph\n",
> -		__func__, (int)RPCRDMA_HDRLEN_MIN, rmsgp);
> +		__func__, (int)RPCRDMA_HDRLEN_MIN, rdma_resp);
> 	pr_info("%s:      RPC: %*ph\n",
> 		__func__, (int)len, p);
> #endif
> @@ -52,7 +61,7 @@ int svc_rdma_handle_bc_reply(struct rpc_xprt *xprt, struct rpcrdma_msg *rmsgp,
> 		goto out_unlock;
> 	memcpy(dst->iov_base, p, len);
> 
> -	credits = be32_to_cpu(rmsgp->rm_credit);
> +	credits = be32_to_cpup(rdma_resp + 2);
> 	if (credits == 0)
> 		credits = 1;	/* don't deadlock */
> 	else if (credits > r_xprt->rx_buf.rb_bc_max_requests)
> diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
> index f1b5bbf..c9ea2e9 100644
> --- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
> +++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
> @@ -565,28 +565,30 @@ static void rdma_read_complete(struct svc_rqst *rqstp,
>  * the RPC/RDMA header small and fixed in size, so it is
>  * straightforward to check the RPC header's direction field.
>  */
> -static bool
> -svc_rdma_is_backchannel_reply(struct svc_xprt *xprt, struct rpcrdma_msg *rmsgp)
> +static bool svc_rdma_is_backchannel_reply(struct svc_xprt *xprt,
> +					  __be32 *rdma_resp)
> {
> -	__be32 *p = (__be32 *)rmsgp;
> +	__be32 *p;
> 
> 	if (!xprt->xpt_bc_xprt)
> 		return false;
> 
> -	if (rmsgp->rm_type != rdma_msg)
> +	p = rdma_resp + 3;
> +	if (*p++ != rdma_msg)
> 		return false;
> -	if (rmsgp->rm_body.rm_chunks[0] != xdr_zero)
> +
> +	if (*p++ != xdr_zero)
> 		return false;
> -	if (rmsgp->rm_body.rm_chunks[1] != xdr_zero)
> +	if (*p++ != xdr_zero)
> 		return false;
> -	if (rmsgp->rm_body.rm_chunks[2] != xdr_zero)
> +	if (*p++ != xdr_zero)
> 		return false;
> 
> -	/* sanity */
> -	if (p[7] != rmsgp->rm_xid)
> +	/* XID sanity */
> +	if (*p++ != *rdma_resp)
> 		return false;
> 	/* call direction */
> -	if (p[8] == cpu_to_be32(RPC_CALL))
> +	if (*p == cpu_to_be32(RPC_CALL))
> 		return false;
> 
> 	return true;
> @@ -652,8 +654,9 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
> 		goto out_drop;
> 	rqstp->rq_xprt_hlen = ret;
> 
> -	if (svc_rdma_is_backchannel_reply(xprt, rmsgp)) {
> -		ret = svc_rdma_handle_bc_reply(xprt->xpt_bc_xprt, rmsgp,
> +	if (svc_rdma_is_backchannel_reply(xprt, (__be32 *)rmsgp)) {
> +		ret = svc_rdma_handle_bc_reply(xprt->xpt_bc_xprt,
> +					       (__be32 *)rmsgp,

Shouldn’t that be &rmsgp->rm_xid in order to be strictly equivalent?

> 					       &rqstp->rq_arg);
> 		svc_rdma_put_context(ctxt, 0);
> 		if (ret)
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


WARNING: multiple messages have this Message-ID (diff)
From: Trond Myklebust <trondmy@primarydata.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Linux RDMA Mailing List <linux-rdma@vger.kernel.org>,
	"Linux NFS Mailing List" <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH v1 15/22] svcrdma: Clean up RPC-over-RDMA backchannel reply processing
Date: Sat, 7 Jan 2017 17:36:41 +0000	[thread overview]
Message-ID: <6566A5B5-DEB2-426F-BA6A-6D8FD32A48D3@primarydata.com> (raw)
In-Reply-To: <20170107171719.14126.10512.stgit@klimt.1015granger.net>

DQo+IE9uIEphbiA3LCAyMDE3LCBhdCAxMjoxNywgQ2h1Y2sgTGV2ZXIgPGNodWNrLmxldmVyQG9y
YWNsZS5jb20+IHdyb3RlOg0KPiANCj4gUmVwbGFjZSBDIHN0cnVjdHVyZS1iYXNlZCBYRFIgZGVj
b2Rpbmcgd2l0aCBwb2ludGVyIGFyaXRobWV0aWMuDQo+IFBvaW50ZXIgYXJpdGhtZXRpYyBpcyBj
b25zaWRlcmVkIG1vcmUgcG9ydGFibGUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBDaHVjayBMZXZl
ciA8Y2h1Y2subGV2ZXJAb3JhY2xlLmNvbT4NCj4gLS0tDQo+IGluY2x1ZGUvbGludXgvc3VucnBj
L3N2Y19yZG1hLmggICAgICAgICAgICB8ICAgIDIgKy0NCj4gbmV0L3N1bnJwYy94cHJ0cmRtYS9z
dmNfcmRtYV9iYWNrY2hhbm5lbC5jIHwgICAxNyArKysrKysrKysrKysrLS0tLQ0KPiBuZXQvc3Vu
cnBjL3hwcnRyZG1hL3N2Y19yZG1hX3JlY3Zmcm9tLmMgICAgfCAgIDI3ICsrKysrKysrKysrKysr
Ky0tLS0tLS0tLS0tLQ0KPiAzIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDE3IGRl
bGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3VucnBjL3N2Y19y
ZG1hLmggYi9pbmNsdWRlL2xpbnV4L3N1bnJwYy9zdmNfcmRtYS5oDQo+IGluZGV4IDUzMTk4MGIu
Ljk4NjZlOTQgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvbGludXgvc3VucnBjL3N2Y19yZG1hLmgN
Cj4gKysrIGIvaW5jbHVkZS9saW51eC9zdW5ycGMvc3ZjX3JkbWEuaA0KPiBAQCAtMTg0LDcgKzE4
NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzdmNfcmRtYV9jb3VudF9tYXBwaW5ncyhzdHJ1Y3Qg
c3ZjeHBydF9yZG1hICpyZG1hLA0KPiANCj4gLyogc3ZjX3JkbWFfYmFja2NoYW5uZWwuYyAqLw0K
PiBleHRlcm4gaW50IHN2Y19yZG1hX2hhbmRsZV9iY19yZXBseShzdHJ1Y3QgcnBjX3hwcnQgKnhw
cnQsDQo+IC0JCQkJICAgIHN0cnVjdCBycGNyZG1hX21zZyAqcm1zZ3AsDQo+ICsJCQkJICAgIF9f
YmUzMiAqcmRtYV9yZXNwLA0KPiAJCQkJICAgIHN0cnVjdCB4ZHJfYnVmICpyY3ZidWYpOw0KPiAN
Cj4gLyogc3ZjX3JkbWFfbWFyc2hhbC5jICovDQo+IGRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hw
cnRyZG1hL3N2Y19yZG1hX2JhY2tjaGFubmVsLmMgYi9uZXQvc3VucnBjL3hwcnRyZG1hL3N2Y19y
ZG1hX2JhY2tjaGFubmVsLmMNCj4gaW5kZXggN2Q0OTU0NS4uNmIzYmJiNiAxMDA2NDQNCj4gLS0t
IGEvbmV0L3N1bnJwYy94cHJ0cmRtYS9zdmNfcmRtYV9iYWNrY2hhbm5lbC5jDQo+ICsrKyBiL25l
dC9zdW5ycGMveHBydHJkbWEvc3ZjX3JkbWFfYmFja2NoYW5uZWwuYw0KPiBAQCAtMTEsNyArMTEs
MTYgQEANCj4gDQo+ICN1bmRlZiBTVkNSRE1BX0JBQ0tDSEFOTkVMX0RFQlVHDQo+IA0KPiAtaW50
IHN2Y19yZG1hX2hhbmRsZV9iY19yZXBseShzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQsIHN0cnVjdCBy
cGNyZG1hX21zZyAqcm1zZ3AsDQo+ICsvKioNCj4gKyAqIHN2Y19yZG1hX2hhbmRsZV9iY19yZXBs
eSAtIFByb2Nlc3MgaW5jb21pbmcgYmFja2NoYW5uZWwgcmVwbHkNCj4gKyAqIEB4cHJ0OiBjb250
cm9sbGluZyBiYWNrY2hhbm5lbCB0cmFuc3BvcnQNCj4gKyAqIEByZG1hX3Jlc3A6IHBvaW50ZXIg
dG8gaW5jb21pbmcgdHJhbnNwb3J0IGhlYWRlcg0KPiArICogQHJjdmJ1ZjogWERSIGJ1ZmZlciBp
bnRvIHdoaWNoIHRvIGRlY29kZSB0aGUgcmVwbHkNCj4gKyAqDQo+ICsgKiBSZXR1cm5zIHplcm8g
YW5kIGZpbGxzIEByY3ZidWYgaWYgc3VjY2Vzc2Z1bC4gT3RoZXJ3aXNlIGENCj4gKyAqIG5lZ2F0
aXZlIGVycm5vIGlzIHJldHVybmVkLg0KPiArICovDQo+ICtpbnQgc3ZjX3JkbWFfaGFuZGxlX2Jj
X3JlcGx5KHN0cnVjdCBycGNfeHBydCAqeHBydCwgX19iZTMyICpyZG1hX3Jlc3AsDQo+IAkJCSAg
ICAgc3RydWN0IHhkcl9idWYgKnJjdmJ1ZikNCj4gew0KPiAJc3RydWN0IHJwY3JkbWFfeHBydCAq
cl94cHJ0ID0gcnBjeF90b19yZG1heCh4cHJ0KTsNCj4gQEAgLTI2LDEzICszNSwxMyBAQCBpbnQg
c3ZjX3JkbWFfaGFuZGxlX2JjX3JlcGx5KHN0cnVjdCBycGNfeHBydCAqeHBydCwgc3RydWN0IHJw
Y3JkbWFfbXNnICpybXNncCwNCj4gDQo+IAlwID0gKF9fYmUzMiAqKXNyYy0+aW92X2Jhc2U7DQo+
IAlsZW4gPSBzcmMtPmlvdl9sZW47DQo+IC0JeGlkID0gcm1zZ3AtPnJtX3hpZDsNCj4gKwl4aWQg
PSAqcmRtYV9yZXNwOw0KPiANCj4gI2lmZGVmIFNWQ1JETUFfQkFDS0NIQU5ORUxfREVCVUcNCj4g
CXByX2luZm8oIiVzOiB4aWQ9JTA4eCwgbGVuZ3RoPSV6dVxuIiwNCj4gCQlfX2Z1bmNfXywgYmUz
Ml90b19jcHUoeGlkKSwgbGVuKTsNCj4gCXByX2luZm8oIiVzOiBSUEMvUkRNQTogJSpwaFxuIiwN
Cj4gLQkJX19mdW5jX18sIChpbnQpUlBDUkRNQV9IRFJMRU5fTUlOLCBybXNncCk7DQo+ICsJCV9f
ZnVuY19fLCAoaW50KVJQQ1JETUFfSERSTEVOX01JTiwgcmRtYV9yZXNwKTsNCj4gCXByX2luZm8o
IiVzOiAgICAgIFJQQzogJSpwaFxuIiwNCj4gCQlfX2Z1bmNfXywgKGludClsZW4sIHApOw0KPiAj
ZW5kaWYNCj4gQEAgLTUyLDcgKzYxLDcgQEAgaW50IHN2Y19yZG1hX2hhbmRsZV9iY19yZXBseShz
dHJ1Y3QgcnBjX3hwcnQgKnhwcnQsIHN0cnVjdCBycGNyZG1hX21zZyAqcm1zZ3AsDQo+IAkJZ290
byBvdXRfdW5sb2NrOw0KPiAJbWVtY3B5KGRzdC0+aW92X2Jhc2UsIHAsIGxlbik7DQo+IA0KPiAt
CWNyZWRpdHMgPSBiZTMyX3RvX2NwdShybXNncC0+cm1fY3JlZGl0KTsNCj4gKwljcmVkaXRzID0g
YmUzMl90b19jcHVwKHJkbWFfcmVzcCArIDIpOw0KPiAJaWYgKGNyZWRpdHMgPT0gMCkNCj4gCQlj
cmVkaXRzID0gMTsJLyogZG9uJ3QgZGVhZGxvY2sgKi8NCj4gCWVsc2UgaWYgKGNyZWRpdHMgPiBy
X3hwcnQtPnJ4X2J1Zi5yYl9iY19tYXhfcmVxdWVzdHMpDQo+IGRpZmYgLS1naXQgYS9uZXQvc3Vu
cnBjL3hwcnRyZG1hL3N2Y19yZG1hX3JlY3Zmcm9tLmMgYi9uZXQvc3VucnBjL3hwcnRyZG1hL3N2
Y19yZG1hX3JlY3Zmcm9tLmMNCj4gaW5kZXggZjFiNWJiZi4uYzllYTJlOSAxMDA2NDQNCj4gLS0t
IGEvbmV0L3N1bnJwYy94cHJ0cmRtYS9zdmNfcmRtYV9yZWN2ZnJvbS5jDQo+ICsrKyBiL25ldC9z
dW5ycGMveHBydHJkbWEvc3ZjX3JkbWFfcmVjdmZyb20uYw0KPiBAQCAtNTY1LDI4ICs1NjUsMzAg
QEAgc3RhdGljIHZvaWQgcmRtYV9yZWFkX2NvbXBsZXRlKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAs
DQo+ICAqIHRoZSBSUEMvUkRNQSBoZWFkZXIgc21hbGwgYW5kIGZpeGVkIGluIHNpemUsIHNvIGl0
IGlzDQo+ICAqIHN0cmFpZ2h0Zm9yd2FyZCB0byBjaGVjayB0aGUgUlBDIGhlYWRlcidzIGRpcmVj
dGlvbiBmaWVsZC4NCj4gICovDQo+IC1zdGF0aWMgYm9vbA0KPiAtc3ZjX3JkbWFfaXNfYmFja2No
YW5uZWxfcmVwbHkoc3RydWN0IHN2Y194cHJ0ICp4cHJ0LCBzdHJ1Y3QgcnBjcmRtYV9tc2cgKnJt
c2dwKQ0KPiArc3RhdGljIGJvb2wgc3ZjX3JkbWFfaXNfYmFja2NoYW5uZWxfcmVwbHkoc3RydWN0
IHN2Y194cHJ0ICp4cHJ0LA0KPiArCQkJCQkgIF9fYmUzMiAqcmRtYV9yZXNwKQ0KPiB7DQo+IC0J
X19iZTMyICpwID0gKF9fYmUzMiAqKXJtc2dwOw0KPiArCV9fYmUzMiAqcDsNCj4gDQo+IAlpZiAo
IXhwcnQtPnhwdF9iY194cHJ0KQ0KPiAJCXJldHVybiBmYWxzZTsNCj4gDQo+IC0JaWYgKHJtc2dw
LT5ybV90eXBlICE9IHJkbWFfbXNnKQ0KPiArCXAgPSByZG1hX3Jlc3AgKyAzOw0KPiArCWlmICgq
cCsrICE9IHJkbWFfbXNnKQ0KPiAJCXJldHVybiBmYWxzZTsNCj4gLQlpZiAocm1zZ3AtPnJtX2Jv
ZHkucm1fY2h1bmtzWzBdICE9IHhkcl96ZXJvKQ0KPiArDQo+ICsJaWYgKCpwKysgIT0geGRyX3pl
cm8pDQo+IAkJcmV0dXJuIGZhbHNlOw0KPiAtCWlmIChybXNncC0+cm1fYm9keS5ybV9jaHVua3Nb
MV0gIT0geGRyX3plcm8pDQo+ICsJaWYgKCpwKysgIT0geGRyX3plcm8pDQo+IAkJcmV0dXJuIGZh
bHNlOw0KPiAtCWlmIChybXNncC0+cm1fYm9keS5ybV9jaHVua3NbMl0gIT0geGRyX3plcm8pDQo+
ICsJaWYgKCpwKysgIT0geGRyX3plcm8pDQo+IAkJcmV0dXJuIGZhbHNlOw0KPiANCj4gLQkvKiBz
YW5pdHkgKi8NCj4gLQlpZiAocFs3XSAhPSBybXNncC0+cm1feGlkKQ0KPiArCS8qIFhJRCBzYW5p
dHkgKi8NCj4gKwlpZiAoKnArKyAhPSAqcmRtYV9yZXNwKQ0KPiAJCXJldHVybiBmYWxzZTsNCj4g
CS8qIGNhbGwgZGlyZWN0aW9uICovDQo+IC0JaWYgKHBbOF0gPT0gY3B1X3RvX2JlMzIoUlBDX0NB
TEwpKQ0KPiArCWlmICgqcCA9PSBjcHVfdG9fYmUzMihSUENfQ0FMTCkpDQo+IAkJcmV0dXJuIGZh
bHNlOw0KPiANCj4gCXJldHVybiB0cnVlOw0KPiBAQCAtNjUyLDggKzY1NCw5IEBAIGludCBzdmNf
cmRtYV9yZWN2ZnJvbShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwKQ0KPiAJCWdvdG8gb3V0X2Ryb3A7
DQo+IAlycXN0cC0+cnFfeHBydF9obGVuID0gcmV0Ow0KPiANCj4gLQlpZiAoc3ZjX3JkbWFfaXNf
YmFja2NoYW5uZWxfcmVwbHkoeHBydCwgcm1zZ3ApKSB7DQo+IC0JCXJldCA9IHN2Y19yZG1hX2hh
bmRsZV9iY19yZXBseSh4cHJ0LT54cHRfYmNfeHBydCwgcm1zZ3AsDQo+ICsJaWYgKHN2Y19yZG1h
X2lzX2JhY2tjaGFubmVsX3JlcGx5KHhwcnQsIChfX2JlMzIgKilybXNncCkpIHsNCj4gKwkJcmV0
ID0gc3ZjX3JkbWFfaGFuZGxlX2JjX3JlcGx5KHhwcnQtPnhwdF9iY194cHJ0LA0KPiArCQkJCQkg
ICAgICAgKF9fYmUzMiAqKXJtc2dwLA0KDQpTaG91bGRu4oCZdCB0aGF0IGJlICZybXNncC0+cm1f
eGlkIGluIG9yZGVyIHRvIGJlIHN0cmljdGx5IGVxdWl2YWxlbnQ/DQoNCj4gCQkJCQkgICAgICAg
JnJxc3RwLT5ycV9hcmcpOw0KPiAJCXN2Y19yZG1hX3B1dF9jb250ZXh0KGN0eHQsIDApOw0KPiAJ
CWlmIChyZXQpDQo+IA0KPiAtLQ0KPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2Vu
ZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtbmZzIiBpbg0KPiB0aGUgYm9keSBvZiBhIG1l
c3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZw0KPiBNb3JlIG1ham9yZG9tbyBpbmZv
IGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwNCj4gDQoNCg==


  parent reply	other threads:[~2017-01-07 17:36 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-07 17:15 [PATCH v1 00/22] convert NFS server to new rdma_rw API Chuck Lever
2017-01-07 17:15 ` Chuck Lever
     [not found] ` <20170107170258.14126.8503.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-01-07 17:15   ` [PATCH v1 01/22] svcrdma: Another sendto chunk list parsing update Chuck Lever
2017-01-07 17:15     ` Chuck Lever
2017-01-07 17:15   ` [PATCH v1 02/22] svcrdma: Replace RPCRDMA_SQ_DEPTH_MULT Chuck Lever
2017-01-07 17:15     ` Chuck Lever
2017-01-07 17:15   ` [PATCH v1 03/22] svcrdma: Remove unused sc_dto_q field Chuck Lever
2017-01-07 17:15     ` Chuck Lever
2017-01-07 17:15   ` [PATCH v1 04/22] svcrdma: Combine list fields in struct svc_rdma_op_ctxt Chuck Lever
2017-01-07 17:15     ` Chuck Lever
2017-01-07 17:15   ` [PATCH v1 05/22] svcrdma: Poll CQs in "workqueue" mode Chuck Lever
2017-01-07 17:15     ` Chuck Lever
2017-01-07 17:16   ` [PATCH v1 06/22] svcrdma: Clean up RPC-over-RDMA Reply header encoder Chuck Lever
2017-01-07 17:16     ` Chuck Lever
2017-01-07 17:16   ` [PATCH v1 07/22] svcrdma: Clean up RPC-over-RDMA Call header decoder Chuck Lever
2017-01-07 17:16     ` Chuck Lever
2017-01-07 17:16   ` [PATCH v1 08/22] svcrdma: Introduce local rdma_rw API helpers Chuck Lever
2017-01-07 17:16     ` Chuck Lever
2017-01-07 17:16   ` [PATCH v1 09/22] svcrdma: Use rdma_rw API in RPC reply path Chuck Lever
2017-01-07 17:16     ` Chuck Lever
2017-01-07 17:16   ` [PATCH v1 10/22] svcrdma: Backchannel sendto clean up Chuck Lever
2017-01-07 17:16     ` Chuck Lever
2017-01-07 17:16   ` [PATCH v1 11/22] svcrdma: Clean up RDMA_ERROR path Chuck Lever
2017-01-07 17:16     ` Chuck Lever
2017-01-07 17:16   ` [PATCH v1 12/22] svcrdma: Reduce size of sge array in struct svc_rdma_op_ctxt Chuck Lever
2017-01-07 17:16     ` Chuck Lever
2017-01-07 17:17   ` [PATCH v1 13/22] svcrdma: Remove old RDMA Write completion handlers Chuck Lever
2017-01-07 17:17     ` Chuck Lever
2017-01-07 17:17   ` [PATCH v1 14/22] svcrdma: Remove the req_map cache Chuck Lever
2017-01-07 17:17     ` Chuck Lever
2017-01-07 17:17   ` [PATCH v1 15/22] svcrdma: Clean up RPC-over-RDMA backchannel reply processing Chuck Lever
2017-01-07 17:17     ` Chuck Lever
     [not found]     ` <20170107171719.14126.10512.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-01-07 17:36       ` Trond Myklebust [this message]
2017-01-07 17:36         ` Trond Myklebust
2017-01-07 17:17   ` [PATCH v1 16/22] svcrdma: Use generic RDMA R/W API in RPC Call path Chuck Lever
2017-01-07 17:17     ` Chuck Lever
2017-01-07 17:17   ` [PATCH v1 17/22] svcrdma: Remove unused Read completion handlers Chuck Lever
2017-01-07 17:17     ` Chuck Lever
2017-01-07 17:17   ` [PATCH v1 18/22] svcrdma: Remove frmr cache Chuck Lever
2017-01-07 17:17     ` Chuck Lever
2017-01-07 17:17   ` [PATCH v1 19/22] svcrdma: Clean up after converting svc_rdma_recvfrom to rdma_rw API Chuck Lever
2017-01-07 17:17     ` Chuck Lever
2017-01-07 17:17   ` [PATCH v1 20/22] svcrdma: Clean-up in svc_rdma_post_recv Chuck Lever
2017-01-07 17:17     ` Chuck Lever
2017-01-07 17:18   ` [PATCH v1 21/22] svcrdma: Clean-up svc_rdma_unmap_dma Chuck Lever
2017-01-07 17:18     ` Chuck Lever
2017-01-07 17:18   ` [PATCH v1 22/22] svcrdma: Re-order fields in svc_rdma_op_ctxt Chuck Lever
2017-01-07 17:18     ` Chuck Lever
2017-01-08 14:34   ` [PATCH v1 00/22] convert NFS server to new rdma_rw API Christoph Hellwig
2017-01-08 14:34     ` Christoph Hellwig
     [not found]     ` <20170108143402.GA2243-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-01-08 17:19       ` Chuck Lever
2017-01-08 17:19         ` Chuck Lever
2017-01-13 16:42   ` J. Bruce Fields
2017-01-13 16:42     ` J. Bruce Fields
     [not found]     ` <20170113164208.GD24709-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2017-01-13 16:54       ` Chuck Lever
2017-01-13 16:54         ` Chuck Lever
     [not found]         ` <33FF9D08-075A-4153-ADDA-C460C1A4D93B-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2017-01-13 17:08           ` J. Bruce Fields
2017-01-13 17:08             ` J. Bruce Fields
2017-01-13 22:04   ` Sagi Grimberg
2017-01-13 22:04     ` Sagi Grimberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6566A5B5-DEB2-426F-BA6A-6D8FD32A48D3@primarydata.com \
    --to=trondmy-7i+n7zu2hftekmmhf/gkza@public.gmane.org \
    --cc=chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
    --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.