On Fri, 2023-08-11 at 19:07 -0400, Jeff Layton wrote: > On Fri, 2023-08-11 at 18:50 -0400, Jeff Layton wrote: > > On Fri, 2023-06-09 at 11:02 +0100, David Howells wrote: > > > When transmitting data, call down into TCP using sendmsg with > > > MSG_SPLICE_PAGES to indicate that content should be spliced rather than > > > performing sendpage calls to transmit header, data pages and trailer. > > > > > > Signed-off-by: David Howells <dhowells@xxxxxxxxxx> > > > Acked-by: Chuck Lever <chuck.lever@xxxxxxxxxx> > > > cc: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> > > > cc: Anna Schumaker <anna@xxxxxxxxxx> > > > cc: Jeff Layton <jlayton@xxxxxxxxxx> > > > cc: "David S. Miller" <davem@xxxxxxxxxxxxx> > > > cc: Eric Dumazet <edumazet@xxxxxxxxxx> > > > cc: Jakub Kicinski <kuba@xxxxxxxxxx> > > > cc: Paolo Abeni <pabeni@xxxxxxxxxx> > > > cc: Jens Axboe <axboe@xxxxxxxxx> > > > cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> > > > cc: linux-nfs@xxxxxxxxxxxxxxx > > > cc: netdev@xxxxxxxxxxxxxxx > > > --- > > > include/linux/sunrpc/svc.h | 11 +++++------ > > > net/sunrpc/svcsock.c | 38 ++++++++++++-------------------------- > > > 2 files changed, 17 insertions(+), 32 deletions(-) > > > > > > > I'm seeing a regression in pynfs runs with v6.5-rc5. 3 tests are failing > > in a similar fashion. WRT1b is one of them > > > > [vagrant@jlayton-kdo-nfsd nfs4.0]$ ./testserver.py --rundeps --maketree --uid=0 --gid=0 localhost:/export/pynfs/4.0/ WRT1b > > ************************************************** > > WRT1b st_write.testSimpleWrite2 : FAILURE > > READ returned > > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', > > expected b'\x00\x00\x00\x00\x00write data' > > INIT st_setclientid.testValid : PASS > > MKFILE st_open.testOpen : PASS > > ************************************************** > > Command line asked for 3 of 679 tests > > Of those: 0 Skipped, 1 Failed, 0 Warned, 2 Passed > > FWIW, here's a capture that shows the problem. See frames 109-112 in > particular. If no one has thoughts on this one, I'll plan to have a look > early next week. Since Chuck's nfsd-next branch (which is based on v6.5-rc5) wasn't showing this issue, I ran a bisect to see what fixes it, and it landed on this patch: commit ed9cd98404c8ae5d0bdd6e7ce52e458a8e0841bb Author: Chuck Lever <chuck.lever@xxxxxxxxxx> Date: Wed Jul 19 14:31:03 2023 -0400 SUNRPC: Convert svc_tcp_sendmsg to use bio_vecs directly Add a helper to convert a whole xdr_buf directly into an array of bio_vecs, then send this array instead of iterating piecemeal over the xdr_buf containing the outbound RPC message. Reviewed-by: David Howells <dhowells@xxxxxxxxxx> Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx> I'll follow up on that thread. I think we may want to pull this patch into mainline for v6.5. -- Jeff Layton <jlayton@xxxxxxxxxx>