On Wed, 7 Jun 2023 15:05:48 +0100 David Howells wrote: > Replace generic_splice_sendpage() + splice_from_pipe + pipe_to_sendpage() > with a net-specific handler, splice_to_socket(), that calls sendmsg() with > MSG_SPLICE_PAGES set instead of calling ->sendpage(). > > MSG_MORE is used to indicate if the sendmsg() is expected to be followed > with more data. > > This allows multiple pipe-buffer pages to be passed in a single call in a > BVEC iterator, allowing the processing to be pushed down to a loop in the > protocol driver. This helps pave the way for passing multipage folios down > too. > > Protocols that haven't been converted to handle MSG_SPLICE_PAGES yet should > just ignore it and do a normal sendmsg() for now - although that may be a > bit slower as it may copy everything. Reviewed-by: Jakub Kicinski <kuba@xxxxxxxxxx>