From: Stefan Hajnoczi <stefanha@redhat.com>
To: Jeff Cody <jcody@redhat.com>
Cc: kwolf@redhat.com, Stefan Hajnoczi <stefanha@gmail.com>,
famz@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v6 00/20] VHDX log replay and write support, .bdrv_create()
Date: Wed, 2 Oct 2013 11:03:43 +0200 [thread overview]
Message-ID: <20131002090343.GG2142@stefanha-thinkpad.redhat.com> (raw)
In-Reply-To: <20131001141546.GB18576@localhost.localdomain>
On Tue, Oct 01, 2013 at 10:15:46AM -0400, Jeff Cody wrote:
> On Tue, Oct 01, 2013 at 03:41:04PM +0200, Stefan Hajnoczi wrote:
> > On Wed, Sep 25, 2013 at 05:02:45PM -0400, Jeff Cody wrote:
> > >
> > > This patch series contains the initial VHDX log parsing, replay,
> > > write support, and image creation.
> > >
> > > === v6 changes ===
> > > https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v6-upstream
> > >
> > > Rebased to latest qemu/master:
> > >
> > > Patch 16/20: .bdrv_create() propagates Error, and bdrv_unref() used
> > > instead of bdrv_delete().
> > >
> > > Patch 17 & 18 are already included in another series:
> > > [PATCH v3 0/3] qemu-iotests with sample images, vhdx test, cleanup
> > >
> > > They are included here to provide a base for patches 19 & 20. If the above
> > > series is applied before this series, then patches 17 and 18 can be ignored.
> > >
> > > Patch 19/20: In qemu-io tests _make_test_img(), filter out vhdx-specific
> > > options for .bdrv_create().
> > >
> > > Patch 20/20: Add VHDX write test case to 064.
> >
> > Sorry for the late review. Feel free to poke Kevin or me if we're being
> > slow - the squeaky wheel gets the grease.
> >
> > I left comments on a couple of the core journal and write patches. It
> > looks pretty good overall.
> >
> > How is the journal code tested? IIUC the sample image file does not
> > have a dirty journal. Please try to include an image that Hyper-V
> > created with a dirty journal so we can be sure flushing the journal
> > works.
>
> Getting Hyper-V generated files with journals is a bit challenging.
> The methodology I've been using is a Linux guest under Hyper-V,
> generating a lot of guest i/o that will cause metadata updates (e.g. dd
> if=/dev/sda of=/dev/sdb, etc..). While this is going on, I hit the
> reset button on the server. Kinda messy, but it works, if not very
> deterministically. I initially tried just killing the process, but I
> was unable to do that and obtain a dirty log.
>
> The problems with the images I've created in this manner is they are
> much too large to put in our repo. However, if I write repetitive
> data, that should allow the image to be compressed adequately... I'll
> give that a try.
>
> I've tested the other direction too (which is much easier) - create a
> VHDX image under QEMU, leave a dirty journal, and then open the image
> file with the dirty journal under Hyper-V. It replayed it, and the
> sha1sum of the affected file inside the image was correct after replay.
I think this approach may be easier. Fabricate images with various log
operations, then replay logs with both QEMU and Hyper-V, compare the
results. You can store the sha1sum in the qemu-iotest so Hyper-V is
only needs to be run once when designing the test case.
A few test cases:
1. Wrapping the log ring buffer between entries.
2. Wrapping the log ring buffer inside an entry with data blocks.
3. Finding the active sequence in a log that contains other, outdated
entries.
4. Applying data descriptors from the log.
5. Applying zero descriptors from the log.
6. Applying file offset values from descriptors (truncation).
7. Checksum mismatch.
Stefan
prev parent reply other threads:[~2013-10-02 9:03 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-25 21:02 [Qemu-devel] [PATCH v6 00/20] VHDX log replay and write support, .bdrv_create() Jeff Cody
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 01/20] block: vhdx - minor comments and typo correction Jeff Cody
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 02/20] block: vhdx - add header update capability Jeff Cody
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 03/20] block: vhdx code movement - VHDXMetadataEntries and BDRVVHDXState to header Jeff Cody
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 04/20] block: vhdx - log support struct and defines Jeff Cody
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 05/20] block: vhdx - break endian translation functions out Jeff Cody
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 06/20] block: vhdx - update log guid in header, and first write tracker Jeff Cody
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 07/20] block: vhdx code movement - move vhdx_close() above vhdx_open() Jeff Cody
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 08/20] block: vhdx - log parsing, replay, and flush support Jeff Cody
2013-10-01 11:31 ` Stefan Hajnoczi
2013-10-01 13:24 ` Jeff Cody
2013-10-02 8:57 ` Stefan Hajnoczi
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 09/20] block: vhdx - add region overlap detection for image files Jeff Cody
2013-10-01 11:42 ` Stefan Hajnoczi
2013-10-01 13:49 ` Jeff Cody
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 10/20] block: vhdx - add log write support Jeff Cody
2013-10-01 13:04 ` Stefan Hajnoczi
2013-10-01 13:26 ` Jeff Cody
2013-10-01 13:30 ` Stefan Hajnoczi
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 11/20] block: vhdx " Jeff Cody
2013-10-01 13:29 ` Stefan Hajnoczi
2013-10-01 13:55 ` Jeff Cody
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 12/20] block: vhdx - remove BAT file offset bit shifting Jeff Cody
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 13/20] block: vhdx - move more endian translations to vhdx-endian.c Jeff Cody
2013-10-01 13:35 ` Stefan Hajnoczi
2013-09-25 21:02 ` [Qemu-devel] [PATCH v6 14/20] block: vhdx - break out code operations to functions Jeff Cody
2013-09-25 21:03 ` [Qemu-devel] [PATCH v6 15/20] block: vhdx - fix comment typos in header, fix incorrect struct fields Jeff Cody
2013-09-25 21:03 ` [Qemu-devel] [PATCH v6 16/20] block: vhdx - add .bdrv_create() support Jeff Cody
2013-09-25 21:03 ` [Qemu-devel] [PATCH v6 17/20] block: qemu-iotests - add basic ability to use binary sample images Jeff Cody
2013-09-25 21:03 ` [Qemu-devel] [PATCH v6 18/20] block: qemu-iotests for vhdx, read sample dynamic image Jeff Cody
2013-09-27 12:58 ` Jeff Cody
2013-09-25 21:03 ` [Qemu-devel] [PATCH v6 19/20] block: vhdx - update _make_test_img() to filter out vhdx options Jeff Cody
2013-09-25 21:03 ` [Qemu-devel] [PATCH v6 20/20] block: qemu-iotests for vhdx, add write test support Jeff Cody
2013-09-27 12:55 ` Jeff Cody
2013-10-01 13:41 ` [Qemu-devel] [PATCH v6 00/20] VHDX log replay and write support, .bdrv_create() Stefan Hajnoczi
2013-10-01 14:15 ` Jeff Cody
2013-10-02 9:03 ` Stefan Hajnoczi [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=20131002090343.GG2142@stefanha-thinkpad.redhat.com \
--to=stefanha@redhat.com \
--cc=famz@redhat.com \
--cc=jcody@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).