All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miroslav Rezanina <mrezanin@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v7 3/4] qemu-img: Add compare subcommand
Date: Thu, 20 Dec 2012 14:44:09 -0500 (EST)	[thread overview]
Message-ID: <1979190175.18558095.1356032649822.JavaMail.root@redhat.com> (raw)
In-Reply-To: <50D203A1.70808@redhat.com>



----- Original Message -----
> From: "Eric Blake" <eblake@redhat.com>
> To: mrezanin@redhat.com
> Cc: qemu-devel@nongnu.org, kwolf@redhat.com, pbonzini@redhat.com, stefanha@redhat.com
> Sent: Wednesday, December 19, 2012 7:12:49 PM
> Subject: Re: [Qemu-devel] [PATCH v7 3/4] qemu-img: Add compare subcommand
> 
> On 12/17/2012 06:39 AM, mrezanin@redhat.com wrote:
> > From: Miroslav Rezanina <mrezanin@redhat.com>
> > 
> > This patch adds new qemu-img subcommand that compare content of two
> > disk
> 
> s/compare/compares/
> 
> > images.
> > 
> > Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
> > ---
> > @@ -587,7 +587,7 @@ static int img_commit(int argc, char **argv)
> >  }
> >  
> >  /*
> > - * Returns true iff the first sector pointed to by 'buf' contains
> > at least
> > + * Returns true if the first sector pointed to by 'buf' contains
> > at least
> 
> Spurious change.  'iff' is correct here, for its mathematical meaning
> of
> if-and-only-if.

You're right. I probably just see iff and change it to if without checking
the reason.

> 
> >   * a non-NUL byte.
> >   *
> >   * 'pnum' is set to the number of sectors (including and
> >   immediately following
> > @@ -688,6 +688,272 @@ static int compare_sectors(const uint8_t
> > *buf1, const uint8_t *buf2, int n,
> >  
> >  #define IO_BUF_SIZE (2 * 1024 * 1024)
> >  
> > +static int64_t sectors_to_bytes(int64_t sectors)
> > +{
> > +    return sectors << BDRV_SECTOR_BITS;
> 
> Worth checking for overflow?
> 

I think it's not. This should be save as block driver should not allow sectors to
cause overflow.

> > +static int check_empty_sectors(BlockDriverState *bs, int64_t
> > sect_num,
> > +                               int sect_count, const char
> > *filename,
> > +                               uint8_t *buffer, bool quiet)
> > +{
> > +    int pnum, ret = 0;
> > +    ret = bdrv_read(bs, sect_num, buffer, sect_count);
> > +    if (ret < 0) {
> > +        error_report("Error while reading offset %" PRId64 " of
> > %s: %s",
> > +                     sectors_to_bytes(sect_num), filename,
> > strerror(-ret));
> > +        return ret;
> > +    }
> > +    ret = is_allocated_sectors(buffer, sect_count, &pnum);
> 
> Is this logic backwards?  Isn't it wasteful to read a sector prior to
> seeing if it was actually allocated?
> 
This is correct order. Function is_allocated_sector test if sectors contain any non-zero byte. We know that sector is "physically" allocated in the image, we test if it contains any data.
> --
> Eric Blake   eblake redhat com    +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
> 
> 

Miroslav Rezanina

  reply	other threads:[~2012-12-20 19:44 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-17 13:39 [Qemu-devel] [PATCH v7 0/4] Add subcommand compare for qemu-img mrezanin
2012-12-17 13:39 ` [Qemu-devel] [PATCH v7 1/4] block: Add synchronous wrapper for bdrv_co_is_allocated_above mrezanin
2012-12-17 13:39   ` [Qemu-devel] [PATCH v7 2/4] qemu-img: Add "Quiet mode" option mrezanin
2012-12-17 13:39     ` [Qemu-devel] [PATCH v7 3/4] qemu-img: Add compare subcommand mrezanin
2012-12-17 13:39       ` [Qemu-devel] [PATCH v7 4/4] Add qemu-img compare documentation mrezanin
2012-12-19 18:15         ` Eric Blake
2012-12-20 19:46           ` Miroslav Rezanina
2012-12-19 18:12       ` [Qemu-devel] [PATCH v7 3/4] qemu-img: Add compare subcommand Eric Blake
2012-12-20 19:44         ` Miroslav Rezanina [this message]
2012-12-19 18:06     ` [Qemu-devel] [PATCH v7 2/4] qemu-img: Add "Quiet mode" option Eric Blake
2012-12-20 19:31       ` Miroslav Rezanina
2012-12-19 17:54   ` [Qemu-devel] [PATCH v7 1/4] block: Add synchronous wrapper for bdrv_co_is_allocated_above Eric Blake
2013-01-14 10:26 ` [Qemu-devel] [PATCH v8 0/4] Add subcommand compare for qemu-img Miroslav Rezanina
2013-01-14 10:26   ` [Qemu-devel] [PATCH v8 1/4] block: Add synchronous wrapper for bdrv_co_is_allocated_above Miroslav Rezanina
2013-01-14 21:33     ` Eric Blake
2013-01-14 10:26   ` [Qemu-devel] [PATCH v8 2/4] qemu-img: Add "Quiet mode" option Miroslav Rezanina
2013-01-14 23:01     ` Eric Blake
2013-01-14 10:26   ` [Qemu-devel] [PATCH v8 3/4] qemu-img: Add compare subcommand Miroslav Rezanina
2013-01-14 10:26   ` [Qemu-devel] [PATCH v8 4/4] Add qemu-img compare documentation Miroslav Rezanina
2013-01-14 23:24     ` 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=1979190175.18558095.1356032649822.JavaMail.root@redhat.com \
    --to=mrezanin@redhat.com \
    --cc=eblake@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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.