rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags
authorDavid Howells <dhowells@redhat.com>
Mon, 29 Jan 2024 23:47:57 +0000 (23:47 +0000)
committerDavid Howells <dhowells@redhat.com>
Tue, 5 Mar 2024 23:31:43 +0000 (23:31 +0000)
commit49489bb03a501547450e8fdc6d85d023d8a3b2c4
tree072eb93c5f650cd6e2bf76652359b6c77f5c335f
parent8985f2b09b3303b935b9ab4814d801251f0c7c22
rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags

Switch from keeping the transmission buffers in the rxrpc_txbuf struct and
allocated from the slab, to allocating them using page fragment allocators
(which uses raw pages), thereby allowing them to be passed to
MSG_SPLICE_PAGES and avoid copying into the UDP buffers.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: "David S. Miller" <davem@davemloft.net>
cc: Eric Dumazet <edumazet@google.com>
cc: Jakub Kicinski <kuba@kernel.org>
cc: Paolo Abeni <pabeni@redhat.com>
cc: linux-afs@lists.infradead.org
cc: netdev@vger.kernel.org
net/rxrpc/ar-internal.h
net/rxrpc/conn_object.c
net/rxrpc/insecure.c
net/rxrpc/local_object.c
net/rxrpc/output.c
net/rxrpc/rxkad.c
net/rxrpc/sendmsg.c
net/rxrpc/txbuf.c