Messages in this thread | | | From | Trond Myklebust <> | Subject | Re: [RFC PATCH 27/28] sunrpc: Use sendmsg(MSG_SPLICE_PAGES) rather then sendpage | Date | Thu, 16 Mar 2023 19:01:35 +0000 |
| |
> On Mar 16, 2023, at 14:06, David Howells <dhowells@redhat.com> wrote: > > Trond Myklebust <trondmy@hammerspace.com> wrote: > >> 1) This is code that is common to the client and the server. Why are we >> adding unused 3 bvec slots to every client RPC call? > > Fair point, but I'm trying to avoid making four+ sendmsg calls in nfsd rather > than one.
Add an enum iter_type for ITER_ITER ? :-)
Otherwise, please just split these functions into one for knfsd and a separate one for the client.
> >> 2) It obfuscates the existence of these bvec slots. > > True, it'd be nice to find a better way to do it. Question is, can the client > make use of MSG_SPLICE_PAGES also?
The requirement for O_DIRECT support means we get the stable write issues with added extra spicy sauce.
> >> 3) knfsd may use splice_direct_to_actor() in order to avoid copying the page >> cache data into private buffers (it just takes a reference to the >> pages). Using MSG_SPLICE_PAGES will presumably require it to protect those >> pages against further writes while the socket is referencing them. > > Upstream sunrpc is using sendpage with TCP. It already has that issue. > MSG_SPLICE_PAGES is a way of doing sendpage through sendmsg.
Fair enough. I do seem to remember a schism with the knfsd developers over that issue.
_________________________________ Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@hammerspace.com
| |