All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, "open list:qcow" <qemu-block@nongnu.org>,
	Max Reitz <mreitz@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/8] qcow: Switch get_cluster_offset to be byte-based
Date: Tue, 29 May 2018 17:10:16 +0200	[thread overview]
Message-ID: <20180529151016.GF4756@localhost.localdomain> (raw)
In-Reply-To: <b1ae14fa-6305-603e-02ab-e8565095f5e3@redhat.com>

Am 29.05.2018 um 17:03 hat Eric Blake geschrieben:
> On 05/28/2018 05:52 AM, Kevin Wolf wrote:
> > Am 25.04.2018 um 20:32 hat Eric Blake geschrieben:
> > > We are gradually moving away from sector-based interfaces, towards
> > > byte-based.  Make the change for the internal helper function
> > > get_cluster_offset(), by changing n_start and n_end to by byte
> > > offsets rather than sector indices within the cluster being
> > > allocated.
> > > 
> > > A later patch will then switch the qcow driver as a whole over
> > > to byte-based operation.
> > > 
> > > Signed-off-by: Eric Blake <eblake@redhat.com>
> > > ---
> > >   block/qcow.c | 28 ++++++++++++++--------------
> > >   1 file changed, 14 insertions(+), 14 deletions(-)
> > > 
> 
> > > +                    for (i = 0; i < s->cluster_size; i += BDRV_SECTOR_SIZE) {
> > >                           if (i < n_start || i >= n_end) {
> > > -                            memset(s->cluster_data, 0x00, 512);
> > > +                            memset(s->cluster_data, 0x00, BDRV_SECTOR_SIZE);
> > >                               if (qcrypto_block_encrypt(s->crypto,
> > > -                                                      (start_sect + i) *
> > > -                                                      BDRV_SECTOR_SIZE,
> > > +                                                      start_offset + i,
> > >                                                         s->cluster_data,
> > >                                                         BDRV_SECTOR_SIZE,
> > >                                                         NULL) < 0) {
> > 
> > This code is still working in blocks of BDRV_SECTOR_SIZE here - which
> > you do need to keep at least partially because that's the block size
> > that qcrypto_block_encrypt() works with. qcrypto_block_qcow_encrypt()
> > even asserts it.
> > 
> > However, this means that even though n_start and n_end are byte-based
> > now, the code only works correctly with encrypted images if they are
> > multiples of BDRV_SECTOR_SIZE. This is currently true and we could
> > assert it, but it would kind of defeat the purpose of the patch.
> 
> But in patch 5, I intentionally kept bs->bl.request_alignment at 512, so I'd
> rather just assert that n_start and n_end are properly aligned than to worry
> about rounding issues.

Yes, I hadn't read the whole series yet. So, sure, adding an assertion
works for me.

Kevin

  reply	other threads:[~2018-05-29 15:10 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-25 18:32 [Qemu-devel] [PATCH 0/8] block: more byte-based cleanups: vectored I/O Eric Blake
2018-04-25 18:32 ` [Qemu-devel] [PATCH 1/8] parallels: Switch to byte-based calls Eric Blake
2018-05-23 19:19   ` [Qemu-devel] [Qemu-block] " John Snow
2018-05-23 20:09     ` Eric Blake
2018-05-23 20:10       ` John Snow
2018-05-25 15:22   ` [Qemu-devel] " Stefan Hajnoczi
2018-05-25 16:29   ` Denis V. Lunev
2018-04-25 18:32 ` [Qemu-devel] [PATCH 2/8] qcow: Switch get_cluster_offset to be byte-based Eric Blake
2018-05-28 10:52   ` Kevin Wolf
2018-05-29 15:03     ` Eric Blake
2018-05-29 15:10       ` Kevin Wolf [this message]
2018-04-25 18:32 ` [Qemu-devel] [PATCH 3/8] qcow: Switch qcow_co_readv to byte-based calls Eric Blake
2018-05-28 11:04   ` Kevin Wolf
2018-05-29 15:03     ` Eric Blake
2018-04-25 18:32 ` [Qemu-devel] [PATCH 4/8] qcow: Switch qcow_co_writev " Eric Blake
2018-05-28 11:09   ` Kevin Wolf
2018-04-25 18:32 ` [Qemu-devel] [PATCH 5/8] qcow: Switch to a byte-based driver Eric Blake
2018-04-25 18:32 ` [Qemu-devel] [PATCH 6/8] replication: Switch to byte-based calls Eric Blake
2018-04-25 18:32 ` [Qemu-devel] [PATCH 7/8] vhdx: " Eric Blake
2018-04-25 18:32 ` [Qemu-devel] [PATCH 8/8] block: Removed unused sector-based vectored I/O Eric Blake
2018-05-25 15:22   ` Stefan Hajnoczi
2018-05-28 11:19 ` [Qemu-devel] [PATCH 0/8] block: more byte-based cleanups: " Kevin Wolf
2018-05-29 15:00   ` Eric Blake

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=20180529151016.GF4756@localhost.localdomain \
    --to=kwolf@redhat.com \
    --cc=eblake@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.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.