stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tom Tucker <tom@opengridcomputing.com>
To: Jiri Slaby <jslaby@suse.cz>, stable@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, Tom Tucker <tom@ogc.us>,
	"J . Bruce Fields" <bfields@redhat.com>
Subject: Re: [PATCH 3.12 34/72] Fix regression in NFSRDMA server
Date: Mon, 23 Nov 2015 09:35:56 -0600	[thread overview]
Message-ID: <5653325C.1090803@opengridcomputing.com> (raw)
In-Reply-To: <dc1546ee854c56780a29624d3bbf20a6fcd05574.1448283890.git.jslaby@suse.cz>

Seems like part of a patch was dropped or there was a merge problem. The 
code in my tree has all these changes. Very strange.

Tom

On 11/23/15 7:08 AM, Jiri Slaby wrote:
> From: Tom Tucker <tom@ogc.us>
>
> 3.12-stable review patch.  If anyone has any objections, please let me know.
>
> ===============
>
> commit 7e4359e2611f95a97037e2b6905eab52f28afbeb upstream.
>
> The server regression was caused by the addition of rq_next_page
> (afc59400d6c65bad66d4ad0b2daf879cbff8e23e). There were a few places that
> were missed with the update of the rq_respages array.
>
> Signed-off-by: Tom Tucker <tom@ogc.us>
> Tested-by: Steve Wise <swise@ogc.us>
> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
> ---
>   net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 12 ++++--------
>   net/sunrpc/xprtrdma/svc_rdma_sendto.c   |  1 +
>   2 files changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
> index 0ce75524ed21..8d904e4eef15 100644
> --- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
> +++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
> @@ -90,6 +90,7 @@ static void rdma_build_arg_xdr(struct svc_rqst *rqstp,
>   		sge_no++;
>   	}
>   	rqstp->rq_respages = &rqstp->rq_pages[sge_no];
> +	rqstp->rq_next_page = rqstp->rq_respages + 1;
This was fixed in an older version.
>   
>   	/* We should never run out of SGE because the limit is defined to
>   	 * support the max allowed RPC data length
> @@ -169,6 +170,7 @@ static int map_read_chunks(struct svcxprt_rdma *xprt,
>   		 */
>   		head->arg.pages[page_no] = rqstp->rq_arg.pages[page_no];
>   		rqstp->rq_respages = &rqstp->rq_arg.pages[page_no+1];
> +		rqstp->rq_next_page = rqstp->rq_respages + 1;
>   
>   		byte_count -= sge_bytes;
>   		ch_bytes -= sge_bytes;
> @@ -276,6 +278,7 @@ static int fast_reg_read_chunks(struct svcxprt_rdma *xprt,
>   
>   	/* rq_respages points one past arg pages */
>   	rqstp->rq_respages = &rqstp->rq_arg.pages[page_no];
> +	rqstp->rq_next_page = rqstp->rq_respages + 1;
>   
>   	/* Create the reply and chunk maps */
>   	offset = 0;
> @@ -520,13 +523,6 @@ next_sge:
>   	for (ch_no = 0; &rqstp->rq_pages[ch_no] < rqstp->rq_respages; ch_no++)
>   		rqstp->rq_pages[ch_no] = NULL;
>   
> -	/*
> -	 * Detach res pages. If svc_release sees any it will attempt to
> -	 * put them.
> -	 */
> -	while (rqstp->rq_next_page != rqstp->rq_respages)
> -		*(--rqstp->rq_next_page) = NULL;
> -
>   	return err;
>   }
>   
> @@ -550,7 +546,7 @@ static int rdma_read_complete(struct svc_rqst *rqstp,
>   
>   	/* rq_respages starts after the last arg page */
>   	rqstp->rq_respages = &rqstp->rq_arg.pages[page_no];
> -	rqstp->rq_next_page = &rqstp->rq_arg.pages[page_no];
> +	rqstp->rq_next_page = rqstp->rq_respages + 1;
>   
>   	/* Rebuild rq_arg head and tail. */
>   	rqstp->rq_arg.head[0] = head->arg.head[0];
> diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
> index c1d124dc772b..11e90f8c0fc5 100644
> --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
> +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
> @@ -625,6 +625,7 @@ static int send_reply(struct svcxprt_rdma *rdma,
>   		if (page_no+1 >= sge_no)
>   			ctxt->sge[page_no+1].length = 0;
>   	}
> +	rqstp->rq_next_page = rqstp->rq_respages + 1;
>   	BUG_ON(sge_no > rdma->sc_max_sge);
>   	memset(&send_wr, 0, sizeof send_wr);
>   	ctxt->wr_op = IB_WR_SEND;


  reply	other threads:[~2015-11-23 15:35 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-23 13:07 [PATCH 3.12 00/72] 3.12.51-stable review Jiri Slaby
2015-11-23 13:07 ` [PATCH 3.12 01/72] dm btree remove: fix a bug when rebalancing nodes after removal Jiri Slaby
2015-11-23 13:07 ` [PATCH 3.12 02/72] iwlwifi: dvm: fix D3 firmware PN programming Jiri Slaby
2015-11-23 13:07 ` [PATCH 3.12 03/72] iwlwifi: fix firmware filename for 3160 Jiri Slaby
2015-11-23 13:07 ` [PATCH 3.12 04/72] iwlwifi: mvm: fix D3 firmware PN programming Jiri Slaby
2015-11-23 13:07 ` [PATCH 3.12 05/72] iommu/amd: Don't clear DTE flags when modifying it Jiri Slaby
2015-11-23 13:07 ` [PATCH 3.12 06/72] powerpc/rtas: Validate rtas.entry before calling enter_rtas() Jiri Slaby
2015-11-23 13:07 ` [PATCH 3.12 07/72] ASoC: wm8904: Correct number of EQ registers Jiri Slaby
2015-11-23 13:07 ` [PATCH 3.12 08/72] mm: make sendfile(2) killable Jiri Slaby
2015-11-23 13:07 ` [PATCH 3.12 09/72] sfc: Fix memcpy() with const destination compiler warning Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 10/72] power: bq24190_charger: suppress build warning Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 11/72] spi: fix pointer-integer size mismatch warning Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 12/72] drm/nouveau/gem: return only valid domain when there's only one Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 13/72] rbd: require stable pages if message data CRCs are enabled Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 14/72] Revert "ARM64: unwind: Fix PC calculation" Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 15/72] dm btree: fix leak of bufio-backed block in btree_split_beneath error path Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 16/72] xhci: handle no ping response error properly Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 17/72] xhci: Add spurious wakeup quirk for LynxPoint-LP controllers Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 18/72] xen-blkfront: check for null drvdata in blkback_changed (XenbusStateClosing) Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 19/72] module: Fix locking in symbol_put_addr() Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 20/72] crypto: api - Only abort operations on fatal signal Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 21/72] md/raid1: submit_bio_wait() returns 0 on success Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 22/72] md/raid10: " Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 23/72] mvsas: Fix NULL pointer dereference in mvs_slot_task_free Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 24/72] IB/cm: Fix rb-tree duplicate free and use-after-free Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 25/72] serial: 8250_pci: Add support for 16 port Exar boards Jiri Slaby
2015-11-23 14:18   ` Soeren Grunewald
2015-11-23 13:08 ` [PATCH 3.12 26/72] serial: 8250_pci: Add support for 12 " Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 27/72] mfd: wm5110: Add register patch for rev D chip Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 28/72] mfd: wm5110: Add register patch for rev E and above Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 29/72] mptfusion: prevent some memory corruption Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 30/72] audit: correctly record file names with different path name types Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 31/72] audit: create private file name copies when auditing inodes Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 32/72] libahci: Allow drivers to override start_engine Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 33/72] ahci: avoton port-disable reset-quirk Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 34/72] Fix regression in NFSRDMA server Jiri Slaby
2015-11-23 15:35   ` Tom Tucker [this message]
2015-11-23 13:08 ` [PATCH 3.12 35/72] irda: precedence bug in irlmp_seq_hb_idx() Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 36/72] macvtap: unbreak receiving of gro skb with frag list Jiri Slaby
2015-11-23 13:08 ` [PATCH 3.12 37/72] ppp: fix pppoe_dev deletion condition in pppoe_release() Jiri Slaby
2015-11-23 13:09 ` [PATCH 3.12 38/72] RDS-TCP: Recover correctly from pskb_pull()/pksb_trim() failure in rds_tcp_data_recv Jiri Slaby
2015-11-23 13:09 ` [PATCH 3.12 39/72] net/mlx4: Copy/set only sizeof struct mlx4_eqe bytes Jiri Slaby
2015-11-23 13:09 ` [PATCH 3.12 40/72] stmmac: Correctly report PTP capabilities Jiri Slaby
2015-11-23 13:09 ` [PATCH 3.12 41/72] ipmr: fix possible race resulting from improper usage of IP_INC_STATS_BH() in preemptible context Jiri Slaby
2015-11-23 13:09 ` [PATCH 3.12 42/72] qmi_wwan: fix entry for HP lt4112 LTE/HSPA+ Gobi 4G Module Jiri Slaby
2015-11-23 13:09 ` [PATCH 3.12 43/72] sit: fix sit0 percpu double allocations Jiri Slaby
2015-11-23 13:09 ` [PATCH 3.12 44/72] net: avoid NULL deref in inet_ctl_sock_destroy() Jiri Slaby
2015-11-23 13:09 ` [PATCH 3.12 45/72] net: fix a race in dst_release() Jiri Slaby
2015-11-23 13:09 ` [PATCH 3.12 46/72] virtio-net: drop NETIF_F_FRAGLIST Jiri Slaby
2015-11-23 13:09 ` [PATCH 3.12 47/72] RDS: verify the underlying transport exists before creating a connection Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 48/72] netfilter: xt_NFQUEUE: fix --queue-bypass regression Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 49/72] powerpc/pseries: Fix dedicated processor partition detection Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 50/72] bridge: superfluous skb->nfct check in br_nf_dev_queue_xmit Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 51/72] net:socket: set msg_namelen to 0 if msg_name is passed as NULL in msghdr struct from userland Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 52/72] ceph: make sure request isn't in any waiting list when kicking request Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 53/72] ceph: protect kick_requests() with mdsc->mutex Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 54/72] ceph: fix kick_requests() Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 55/72] net: sun4i-emac: fix memory leak on bad packet Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 56/72] macmace: add missing platform_set_drvdata() in mace_probe() Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 57/72] r8169: fix the incorrect tx descriptor version Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 58/72] r8169: disable L23 Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 59/72] serial: 8250_dw: Fix deadlock in LCR workaround Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 60/72] ARM: orion: Fix DSA platform device after mvmdio conversion Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 61/72] rbd: don't leak parent_spec in rbd_dev_probe_parent() Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 62/72] rbd: prevent kernel stack blow up on rbd map Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 63/72] KEYS: Fix race between key destruction and finding a keyring by name Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 64/72] KEYS: Fix crash when attempt to garbage collect an uninstantiated keyring Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 65/72] KVM: x86: Defining missing x86 vectors Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 66/72] KVM: x86: work around infinite loop in microcode when #AC is delivered Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 67/72] KVM: svm: unconditionally intercept #DB Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 68/72] KVM: x86: Fix far-jump to non-canonical check Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 69/72] KVM: x86: Use new is_noncanonical_address in _linearize Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 70/72] ipv6: addrconf: validate new MTU before applying it Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 71/72] x86/mm/hotplug: Pass sync_global_pgds() a correct argument in remove_pagetable() Jiri Slaby
2015-11-23 13:12 ` [PATCH 3.12 72/72] x86/mm/hotplug: Modify PGD entry when removing memory Jiri Slaby
2015-11-23 16:27 ` [PATCH 3.12 00/72] 3.12.51-stable review Guenter Roeck
2015-11-23 16:28   ` Guenter Roeck
2015-11-23 16:30 ` Shuah Khan
2015-11-24  3:42 ` Guenter Roeck
2015-11-30  9:06   ` Jiri Slaby

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=5653325C.1090803@opengridcomputing.com \
    --to=tom@opengridcomputing.com \
    --cc=bfields@redhat.com \
    --cc=jslaby@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tom@ogc.us \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).