Message ID | 20230606130856.1970660-1-dhowells@redhat.com |
---|---|
Headers | show |
Series | crypto, splice, net: Make AF_ALG handle sendmsg(MSG_SPLICE_PAGES) | expand |
On Tue, Jun 06, 2023 at 02:08:51PM +0100, David Howells wrote: > Convert AF_ALG to use iov_iter_extract_pages() instead of > iov_iter_get_pages(). This will pin pages or leave them unaltered rather > than getting a ref on them as appropriate to the iterator. > > The pages need to be pinned for DIO-read rather than having refs taken on > them to prevent VM copy-on-write from malfunctioning during a concurrent > fork() (the result of the I/O would otherwise end up only visible to the > child process and not the parent). > > Signed-off-by: David Howells <dhowells@redhat.com> > cc: Herbert Xu <herbert@gondor.apana.org.au> > 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: Jens Axboe <axboe@kernel.dk> > cc: Matthew Wilcox <willy@infradead.org> > cc: linux-crypto@vger.kernel.org > cc: netdev@vger.kernel.org > --- > crypto/af_alg.c | 10 +++++++--- > include/crypto/if_alg.h | 1 + > 2 files changed, 8 insertions(+), 3 deletions(-) Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
On Tue, Jun 06, 2023 at 02:08:53PM +0100, David Howells wrote: > Put the loop in af_alg_sendmsg() into an if-statement to indent it to make > the next patch easier to review as that will add another branch to handle > MSG_SPLICE_PAGES to the if-statement. > > Signed-off-by: David Howells <dhowells@redhat.com> > cc: Herbert Xu <herbert@gondor.apana.org.au> > 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: Jens Axboe <axboe@kernel.dk> > cc: Matthew Wilcox <willy@infradead.org> > cc: linux-crypto@vger.kernel.org > cc: netdev@vger.kernel.org > --- > > Notes: > ver #2) > - Fix a checkpatch warning. Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
On Tue, Jun 06, 2023 at 02:08:54PM +0100, David Howells wrote: > Make AF_ALG sendmsg() support MSG_SPLICE_PAGES. This causes pages to be > spliced from the source iterator. > > This allows ->sendpage() to be replaced by something that can handle > multiple multipage folios in a single transaction. > > Signed-off-by: David Howells <dhowells@redhat.com> > cc: Herbert Xu <herbert@gondor.apana.org.au> > 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: Jens Axboe <axboe@kernel.dk> > cc: Matthew Wilcox <willy@infradead.org> > cc: linux-crypto@vger.kernel.org > cc: netdev@vger.kernel.org > --- > > Notes: > ver #3) > - Remove BVEC iter restriction when using MSG_SPLICE_PAGES. > > crypto/af_alg.c | 24 ++++++++++++++++++++++-- > crypto/algif_aead.c | 22 +++++++++++----------- > crypto/algif_skcipher.c | 8 ++++---- > 3 files changed, 37 insertions(+), 17 deletions(-) Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
On Tue, Jun 06, 2023 at 02:08:56PM +0100, David Howells wrote: > Make AF_ALG sendmsg() support MSG_SPLICE_PAGES in the hashing code. This > causes pages to be spliced from the source iterator if possible. > > This allows ->sendpage() to be replaced by something that can handle > multiple multipage folios in a single transaction. > > Signed-off-by: David Howells <dhowells@redhat.com> > cc: Herbert Xu <herbert@gondor.apana.org.au> > 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: Jens Axboe <axboe@kernel.dk> > cc: Matthew Wilcox <willy@infradead.org> > cc: linux-crypto@vger.kernel.org > cc: netdev@vger.kernel.org > --- > > Notes: > ver #2) > - Fixed some checkpatch warnings. > > crypto/af_alg.c | 11 +++-- > crypto/algif_hash.c | 100 +++++++++++++++++++++++++++----------------- > 2 files changed, 70 insertions(+), 41 deletions(-) Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Hello: This series was applied to netdev/net-next.git (main) by Paolo Abeni <pabeni@redhat.com>: On Tue, 6 Jun 2023 14:08:46 +0100 you wrote: > Here are patches to make AF_ALG handle the MSG_SPLICE_PAGES internal > sendmsg flag. MSG_SPLICE_PAGES is an internal hint that tells the protocol > that it should splice the pages supplied if it can. The sendpage functions > are then turned into wrappers around that. > > This set consists of the following parts: > > [...] Here is the summary with links: - [net-next,v3,01/10] Drop the netfs_ prefix from netfs_extract_iter_to_sg() https://git.kernel.org/netdev/net-next/c/0d7aeb68700f - [net-next,v3,02/10] Fix a couple of spelling mistakes https://git.kernel.org/netdev/net-next/c/3b9e9f72badf - [net-next,v3,03/10] Wrap lines at 80 https://git.kernel.org/netdev/net-next/c/936dc763c52e - [net-next,v3,04/10] Move netfs_extract_iter_to_sg() to lib/scatterlist.c https://git.kernel.org/netdev/net-next/c/f5f82cd18732 - [net-next,v3,05/10] crypto: af_alg: Pin pages rather than ref'ing if appropriate https://git.kernel.org/netdev/net-next/c/f9e7a5fa51fb - [net-next,v3,06/10] crypto: af_alg: Use extract_iter_to_sg() to create scatterlists https://git.kernel.org/netdev/net-next/c/c1abe6f570af - [net-next,v3,07/10] crypto: af_alg: Indent the loop in af_alg_sendmsg() https://git.kernel.org/netdev/net-next/c/73d7409cfdad - [net-next,v3,08/10] crypto: af_alg: Support MSG_SPLICE_PAGES https://git.kernel.org/netdev/net-next/c/bf63e250c4b1 - [net-next,v3,09/10] crypto: af_alg: Convert af_alg_sendpage() to use MSG_SPLICE_PAGES https://git.kernel.org/netdev/net-next/c/fb800fa4c1f5 - [net-next,v3,10/10] crypto: af_alg/hash: Support MSG_SPLICE_PAGES https://git.kernel.org/netdev/net-next/c/c662b043cdca You are awesome, thank you!