qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Pavel Dovgalyuk" <dovgaluk@ispras.ru>
To: 'Paolo Bonzini' <pbonzini@redhat.com>,
	'Pavel Dovgalyuk' <pavel.dovgaluk@ispras.ru>,
	qemu-devel@nongnu.org
Cc: kwolf@redhat.com, peter.maydell@linaro.org, mst@redhat.com,
	jasowang@redhat.com, quintela@redhat.com, kraxel@redhat.com
Subject: Re: [Qemu-devel] [PATCH v9 06/10] replay: fix save/load vm for non-empty queue
Date: Thu, 4 May 2017 16:24:02 +0300	[thread overview]
Message-ID: <001301d2c4d9$b69e9840$23dbc8c0$@ru> (raw)
In-Reply-To: <bf930126-426b-b208-8fcb-76adda3bd9f5@redhat.com>

> From: Paolo Bonzini [mailto:pbonzini@redhat.com]
> On 04/05/2017 15:02, Pavel Dovgalyuk wrote:
> >> Understood.  And what checkpoint will you be waiting for during drain,
> >> causing a deadlock?
> > Every checkpoint processes the queue, but none of them are invoked,
> > because iothread (which invokes all the checkpoints) is waiting for the end of the drain.
> >
> > And we cannot add a checkpoint into the drain, because then vmstop will
> > affect the behavior of the guest.
> 
> But it does affect the behavior already when RR is off.  And it
> shouldn't be a problem if it does in record mode (as long as the effect
> can be replayed).

Then we'll have to add something like "stop" event which flushes the queue.
And there is still a problem with stopping in replay mode, because there
is no way to flush the queue, because coroutines are executing somewhere.

> If RR cannot do drain reliably, not even in record mode, that is a huge
> problem because a lot of block layer operations assume they can.

I think it could be an acceptable limitation (like disabling savevm/loadvm
when queue is not empty).
I assume that RR is mostly used for debugging and analysis and it could
have some limitations of this kind.
Making our own block queue (instead of coroutines) is much worse, therefore
we have to replay the original internal behavior.

Pavel Dovgalyuk

  reply	other threads:[~2017-05-04 13:24 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-04  8:41 [Qemu-devel] [PATCH v9 00/10] replay additions Pavel Dovgalyuk
2017-05-04  8:41 ` [Qemu-devel] [PATCH v9 01/10] block: implement bdrv_snapshot_goto for blkreplay Pavel Dovgalyuk
2017-05-04  8:41 ` [Qemu-devel] [PATCH v9 02/10] blkreplay: create temporary overlay for underlaying devices Pavel Dovgalyuk
2017-05-04  8:41 ` [Qemu-devel] [PATCH v9 03/10] replay: disable default snapshot for record/replay Pavel Dovgalyuk
2017-05-04  8:41 ` [Qemu-devel] [PATCH v9 04/10] replay: fix processing async events Pavel Dovgalyuk
2017-05-04 10:30   ` Paolo Bonzini
2017-05-04 12:32     ` Pavel Dovgalyuk
2017-05-04  8:42 ` [Qemu-devel] [PATCH v9 05/10] replay: fixed replay_enable_events Pavel Dovgalyuk
2017-05-04  8:42 ` [Qemu-devel] [PATCH v9 06/10] replay: fix save/load vm for non-empty queue Pavel Dovgalyuk
2017-05-04  9:33   ` Juan Quintela
2017-05-04 10:03     ` Pavel Dovgalyuk
2017-05-04 10:31   ` Paolo Bonzini
2017-05-04 11:13     ` Pavel Dovgalyuk
2017-05-04 11:52       ` Paolo Bonzini
2017-05-04 11:54         ` Pavel Dovgalyuk
2017-05-04 12:02           ` Paolo Bonzini
2017-05-04 12:10             ` Pavel Dovgalyuk
2017-05-04 12:32               ` Paolo Bonzini
2017-05-04 12:34                 ` Pavel Dovgalyuk
2017-05-04 12:52                   ` Paolo Bonzini
2017-05-04 13:02                     ` Pavel Dovgalyuk
2017-05-04 13:12                       ` Paolo Bonzini
2017-05-04 13:24                         ` Pavel Dovgalyuk [this message]
2017-05-04  8:42 ` [Qemu-devel] [PATCH v9 07/10] replay: added replay log format description Pavel Dovgalyuk
2017-05-04  8:42 ` [Qemu-devel] [PATCH v9 08/10] replay: make safe vmstop at record/replay Pavel Dovgalyuk
2017-05-04  8:42 ` [Qemu-devel] [PATCH v9 09/10] replay: save prior value of the host clock Pavel Dovgalyuk
2017-05-04  8:42 ` [Qemu-devel] [PATCH v9 10/10] icount: fixed saving/restoring of icount warp timers Pavel Dovgalyuk
2017-05-04  9:35 ` [Qemu-devel] [PATCH v9 00/10] replay additions no-reply

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='001301d2c4d9$b69e9840$23dbc8c0$@ru' \
    --to=dovgaluk@ispras.ru \
    --cc=jasowang@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mst@redhat.com \
    --cc=pavel.dovgaluk@ispras.ru \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.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).