Linux FSCRYPT development
 help / color / mirror / Atom feed
From: Eric Biggers <ebiggers@kernel.org>
To: James Simmons <jsimmons@infradead.org>
Cc: Andreas Dilger <adilger@whamcloud.com>, NeilBrown <neilb@suse.de>,
	linux-fscrypt@vger.kernel.org
Subject: Re: [PATCH] fscrypt: allow alternative bounce buffers
Date: Thu, 19 May 2022 09:52:14 -0700	[thread overview]
Message-ID: <YoZ1vlUWqX/ZF/iJ@sol.localdomain> (raw)
In-Reply-To: <1652966485-7418-1-git-send-email-jsimmons@infradead.org>

On Thu, May 19, 2022 at 09:21:25AM -0400, James Simmons wrote:
> Currently fscrypt offers two options. One option is to use the
> internal bounce buffer allocated or perform inline encrpytion.
> Add the option to use an external bounce buffer. This change can
> be used useful for example for a network file systems which can
> pass in a page from the page cache and place the encrypted data
> into a page for a network packet to be sent. Another potential
> use is the use of GPU pages with RDMA being the final destination
> for the encrypted data. Lastly in performance measurements the
> allocation of the bounce page incures a heavy cost. Using a page
> from a predefined memory pool can lower the case. We can replace
> the one off case of inplace encryption with the new general
> functions.
> 
> Signed-Off-By: James Simmons <jsimmons@infradead.org>
> ---
>  fs/crypto/crypto.c      | 34 +++++++++++++++++++---------------
>  fs/ubifs/crypto.c       | 16 +++++++++-------
>  include/linux/fscrypt.h | 31 ++++++++++++++++---------------
>  3 files changed, 44 insertions(+), 37 deletions(-)

Can you send a patch with the user of this at the same time?  This patch isn't
useful on its own.  UBIFS doesn't count, since it works fine without this.

>  /**
> - * fscrypt_encrypt_block_inplace() - Encrypt a filesystem block in-place
> + * fscrypt_encrypt_page() - Cache an encrypt filesystem block in a page

fscrypt_encrypt_block() would be a better name, to avoid confusion between
blocks and pages.

Also, "Cache an encrypt filesystem block" => "Encrypt a filesystem block"

>  /**
> - * fscrypt_decrypt_block_inplace() - Decrypt a filesystem block in-place
> + * fscrypt_decrypt_page() - Cache a decrypt a filesystem block in a page

Likewise, fscrypt_decrypt_block().

>   * @inode:     The inode to which this block belongs
> - * @page:      The page containing the block to decrypt
> + * @src:       The page containing the block to decrypt
> + * @dst:       The page which will contain the plain data
>   * @len:       Size of block to decrypt.  This must be a multiple of
>   *		FSCRYPT_CONTENTS_ALIGNMENT.
>   * @offs:      Byte offset within @page at which the block to decrypt begins
> @@ -292,17 +295,18 @@ EXPORT_SYMBOL(fscrypt_decrypt_pagecache_blocks);
>   * Decrypt a possibly-compressed filesystem block that is located in an
>   * arbitrary page, not necessarily in the original pagecache page.  The @inode
>   * and @lblk_num must be specified, as they can't be determined from @page.
> + * The encrypted data will be stored in @dst.
>   *
>   * Return: 0 on success; -errno on failure
>   */
> -int fscrypt_decrypt_block_inplace(const struct inode *inode, struct page *page,
> -				  unsigned int len, unsigned int offs,
> -				  u64 lblk_num)
> +int fscrypt_decrypt_page(const struct inode *inode, struct page *src,
> +			 struct page *dst, unsigned int len, unsigned int offs,
> +			 u64 lblk_num, gfp_t gfp_flags)

The new gfp_flags parameter is not documented in the kerneldoc comment.

- Eric

      reply	other threads:[~2022-05-19 16:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-19 13:21 [PATCH] fscrypt: allow alternative bounce buffers James Simmons
2022-05-19 16:52 ` Eric Biggers [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YoZ1vlUWqX/ZF/iJ@sol.localdomain \
    --to=ebiggers@kernel.org \
    --cc=adilger@whamcloud.com \
    --cc=jsimmons@infradead.org \
    --cc=linux-fscrypt@vger.kernel.org \
    --cc=neilb@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox