All of lore.kernel.org
 help / color / mirror / Atom feed
From: Satya Tangirala <satyat@google.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	Jens Axboe <axboe@kernel.dk>, Eric Biggers <ebiggers@google.com>
Subject: Re: [PATCH 0/7] ensure bios aren't split in middle of crypto data unit
Date: Thu, 25 Mar 2021 21:41:06 +0000	[thread overview]
Message-ID: <YF0DcnkXy2l5WJzW@google.com> (raw)
In-Reply-To: <20210121171129.GA4122715@infradead.org>

On Thu, Jan 21, 2021 at 05:11:29PM +0000, Christoph Hellwig wrote:
> On Thu, Jan 14, 2021 at 03:47:16PM +0000, Satya Tangirala wrote:
> > When a bio has an encryption context, its size must be aligned to its
> > crypto data unit size. A bio must not be split in the middle of a data
> > unit. Currently, bios are split at logical block boundaries, but a crypto
> > data unit size might be larger than the logical block size - e.g. a machine
> > could be using fscrypt (which uses 4K crypto data units) with an eMMC block
> > device with inline encryption hardware that has a logical block size of
> > 512 bytes. So we need to support cases where the data unit size is larger
> > than the logical block size.
> 
> I think this model is rather broken.  Instead of creating an -EIO path
> we can't handle anywhere make sure that the size limits exposed by the
> driver that wants to split always align to the crypto data units to
> avoid this issue to start with.
Hey Christoph,
Thanks for the suggestion. I finally sent out v2 for this patch at
https://lore.kernel.org/linux-block/20210325212609.492188-1-satyat@google.com/

I tried doing something similar to what you suggested to avoid
creating an -EIO path, but instead of changing the size limits exposed
by the driver, I changed the allowed data unit sizes based on the
exposed size limits. I did it that way because the limits that
interfere with inline encryption happen to be "hard limits" a driver
can't lie about, like having support for SG gaps or not requiring
chunk sectors. Another reason for doing it this way is so that we
don't interfere with regular unencrypted I/O by changing driver
exposed limits unconditionally (and I didn't think it was
straightforward to expose two different sets of limits of encrypted
and unencrypted I/O respectively). Please take a look at the new patch
series if you're able to. Thanks!

      reply	other threads:[~2021-03-25 21:42 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-14 15:47 [PATCH 0/7] ensure bios aren't split in middle of crypto data unit Satya Tangirala
2021-01-14 15:47 ` [PATCH 1/7] block: make blk_bio_segment_split() able to fail and return error Satya Tangirala
2021-01-14 15:47 ` [PATCH 2/7] block: blk-crypto: Introduce blk_crypto_bio_sectors_alignment() Satya Tangirala
2021-01-14 15:47 ` [PATCH 3/7] block: respect blk_crypto_bio_sectors_alignment() in bounce.c Satya Tangirala
2021-01-21 17:13   ` Christoph Hellwig
2021-01-14 15:47 ` [PATCH 4/7] block: respect blk_crypto_bio_sectors_alignment() in blk-crypto-fallback Satya Tangirala
2021-01-14 15:47 ` [PATCH 5/7] block: respect blk_crypto_bio_sectors_alignment() in blk-merge Satya Tangirala
2021-01-14 15:47 ` [PATCH 6/7] block: add WARN() in bio_split() for sector alignment Satya Tangirala
2021-01-14 15:47 ` [PATCH 7/7] block: compute nsegs more accurately in blk_bio_segment_split() Satya Tangirala
2021-01-21 17:11 ` [PATCH 0/7] ensure bios aren't split in middle of crypto data unit Christoph Hellwig
2021-03-25 21:41   ` Satya Tangirala [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=YF0DcnkXy2l5WJzW@google.com \
    --to=satyat@google.com \
    --cc=axboe@kernel.dk \
    --cc=ebiggers@google.com \
    --cc=hch@infradead.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.