qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Pavel Dovgalyuk" <dovgaluk@ispras.ru>
To: 'Paolo Bonzini' <pbonzini@redhat.com>
Cc: 'Kevin Wolf' <kwolf@redhat.com>,
	'Pavel Dovgalyuk' <pavel.dovgaluk@ispras.ru>,
	qemu-devel@nongnu.org, 'peter maydell' <peter.maydell@linaro.org>,
	quintela@redhat.com, jasowang@redhat.com, mst@redhat.com,
	mreitz@redhat.com, qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v5 7/9] block: don't make snapshots for filters
Date: Wed, 16 Nov 2016 16:50:58 +0300	[thread overview]
Message-ID: <002801d24010$760d8e60$6228ab20$@ru> (raw)
In-Reply-To: <681073315.13077713.1479298503298.JavaMail.zimbra@redhat.com>

> From: Paolo Bonzini [mailto:pbonzini@redhat.com]
> > I've investigated this issue.
> > This command line works ok:
> >  -drive
> >  driver=blkreplay,if=none,image.driver=file,image.filename=testdisk.qcow,id=img-blkreplay
> >  -device ide-hd,drive=img-blkreplay
> >
> > And this does not:
> >  -drive
> >
> driver=blkreplay,if=none,image.driver=qcow2,image.file.driver=file,image.file.filename=testdis
> k.qcow
> > ,id=img-blkreplay
> >  -device ide-hd,drive=img-blkreplay
> >
> > QEMU hangs at some moment of replay.
> >
> > I found that some dma requests do not pass through the blkreplay driver
> > due to the following line in block-backend.c:
> >     return bdrv_co_preadv(blk->root, offset, bytes, qiov, flags);
> >
> > This line passes read request directly to qcow driver and blkreplay cannot
> > process it to make deterministic.
> 
> I don't understand, blk->root should be the blkreplay here.

I've got some more logs. I used the disk image which references the backing file.
It seems that some weird things happen with both command lines.

== For the first command line (blkreplay separated from image):
blk_co_preadv(img-blkreplay)
 -> bdrv_co_preadv(qcow2, temp_overlay1)
 -> bdrv_co_preadv(blkreplay, temp_overlay)
 -> bdrv_co_preadv(qcow2, temp_overlay2)
 -> bdrv_co_preadv(qcow2, image_overlay)
 -> bdrv_co_preadv(qcow2, image_backing)
 -> bdrv_co_preadv(file, image_backing)

But sometimes it changes to:
blk_co_preadv(img-blkreplay)
 -> bdrv_co_preadv(qcow2, temp_overlay1)
 -> bdrv_co_preadv(file, temp_overlay1)

== For the second command line (blkreplay combined with image):

In most cases we have the following call stack:
blk_co_preadv(img-blkreplay)
 -> bdrv_co_preadv(qcow2, temp_overlay)
 -> bdrv_co_preadv(blkreplay, image_overlay)
 -> bdrv_co_preadv(qcow2, image_overlay)
 -> bdrv_co_preadv(qcow2, image_backing)
 -> bdrv_co_preadv(file, image_backing)

But sometimes it changes to:
blk_co_preadv(img-blkreplay)
 -> bdrv_co_preadv(qcow2, temp overlay)
 -> bdrv_co_preadv(file, temp overlay)

========

It seems, that temporary overlay is created over blkreplay, which
it intended to work as a simple filter. Is that correct?
	
Pavel Dovgalyuk

  reply	other threads:[~2016-11-16 13:51 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-26  8:07 [Qemu-devel] [PATCH v5 0/9] replay additions Pavel Dovgalyuk
2016-09-26  8:08 ` [Qemu-devel] [PATCH v5 1/9] replay: move internal data to the structure Pavel Dovgalyuk
2016-09-26  8:08 ` [Qemu-devel] [PATCH v5 2/9] replay: vmstate for replay module Pavel Dovgalyuk
2016-09-26  8:08 ` [Qemu-devel] [PATCH v5 3/9] replay: allow replay stopping and restarting Pavel Dovgalyuk
2016-09-26  8:08 ` [Qemu-devel] [PATCH v5 4/9] record/replay: add network support Pavel Dovgalyuk
2016-10-27  3:36   ` Jason Wang
2016-10-27  7:58     ` Paolo Bonzini
2016-10-31  7:41       ` Jason Wang
2016-09-26  8:08 ` [Qemu-devel] [PATCH v5 5/9] savevm: add public save_vmstate function Pavel Dovgalyuk
2016-09-26  8:15   ` Paolo Bonzini
2016-09-26  8:08 ` [Qemu-devel] [PATCH v5 6/9] replay: save/load initial state Pavel Dovgalyuk
2016-09-26  8:08 ` [Qemu-devel] [PATCH v5 7/9] block: don't make snapshots for filters Pavel Dovgalyuk
2016-09-26  9:23   ` Kevin Wolf
2016-09-26  9:51     ` Pavel Dovgalyuk
2016-09-26 13:17       ` Kevin Wolf
2016-09-27 14:06         ` Pavel Dovgalyuk
2016-09-28  8:36           ` Kevin Wolf
2016-09-28  9:32             ` Pavel Dovgalyuk
2016-09-28  9:43               ` Kevin Wolf
2016-09-28 12:49                 ` Pavel Dovgalyuk
2016-09-29 10:32                   ` Kevin Wolf
2016-11-16  9:49                   ` Pavel Dovgalyuk
2016-11-16 12:15                     ` Paolo Bonzini
2016-11-16 13:50                       ` Pavel Dovgalyuk [this message]
2016-11-16 12:20                     ` Kevin Wolf
2016-11-21 12:22                       ` Pavel Dovgalyuk
2016-11-21 15:54                         ` Kevin Wolf
2016-12-05  7:43                           ` Pavel Dovgalyuk
2016-12-05 10:34                             ` Kevin Wolf
2016-12-05 11:49                               ` Pavel Dovgalyuk
2016-12-05 12:44                                 ` Kevin Wolf
2016-12-06  9:37                                   ` Pavel Dovgalyuk
2016-12-22  6:58                                   ` Pavel Dovgalyuk
2016-09-26  8:08 ` [Qemu-devel] [PATCH v5 8/9] block: implement bdrv_recurse_is_first_non_filter for blkreplay Pavel Dovgalyuk
2016-09-26  8:08 ` [Qemu-devel] [PATCH v5 9/9] integratorcp: adding vmstate for save/restore Pavel Dovgalyuk
2016-09-26  8:15 ` [Qemu-devel] [PATCH v5 0/9] replay additions Paolo Bonzini

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='002801d24010$760d8e60$6228ab20$@ru' \
    --to=dovgaluk@ispras.ru \
    --cc=jasowang@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=mst@redhat.com \
    --cc=pavel.dovgaluk@ispras.ru \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@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 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).