All of lore.kernel.org
 help / color / mirror / Atom feed
From: Uri Lublin <uri@il.qumranet.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Avi Kivity <avi@redhat.com>, kvm@vger.kernel.org
Subject: Re: [PATCH] qemu: qemu_fopen_fd: differentiate between reader and writer user
Date: Sun, 19 Oct 2008 15:46:43 +0200	[thread overview]
Message-ID: <48FB3A43.9000506@il.qumranet.com> (raw)
In-Reply-To: <48F7FCC7.2020108@codemonkey.ws>

Anthony Liguori wrote:
> Uri Lublin wrote:
>>
>> That is true, but in the case I mentioned above it would take the 
>> management tool some time (guest down time) to realize what happens, 
>> and to send "cont" to the SRC. With end-of-migration messages SRC 
>> discovers DST fails and immediately continues.
>> I agree those messages add some complexity, and slow things a bit for 
>> the good/average case.
> 
> It's the classic general's dilemma.  If SRC waits for DST to send an 
> ACK, DST still doesn't know whether SRC received the ACK so it doesn't 
> know whether it's truly safe to continue.
> 
> This is why migration doesn't quit SRC immediately, and leaves SRC in 
> the stopped state.  It's because the only safe way to handle this is 
> with a third party that is reliable.
> 

In the scenario above (with ACK/GO messages), SRC _does_ know that DST have 
failed (as it does not receive ACK). With ACK/GO messages we only need third 
party involvement to handle a scenario where GO does not reach DST. Without 
ACK/GO messages we need third party involvement for almost any state-load 
function failure. In other words the risk/exposure is smaller with ACK/GO messages.

Since in both cases we must have a third party involvement in the worst case, 
and since on the good/normal case those messages slow down the migration process 
a bit (and complicate the code a bit), I do not mind dropping those messages. I 
just wanted to make sure we all understand their benefit. We can always add them 
later if we'll "miss" them (if we'll find out they are more useful then we think 
now).

In any case, we need to think of a way to get the migration status on the 
destination. A minimum is to term_printf a message specifying that status. Maybe 
  change 'info migration' result on destination, or add a new info command. 
Specifically if the guest dies on DST, a management software must be able to 
distinguish between a migration problem (in which case it must continue running 
the guest on SRC) and a successful migration followed by a guest dying (in which 
case it must quit the guest on SRC).

Regards,
     Uri

  reply	other threads:[~2008-10-19 13:46 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-12 16:30 [PATCH] qemu: qemu_fopen_fd: differentiate between reader and writer user Uri Lublin
2008-10-12 16:55 ` Avi Kivity
2008-10-12 18:09   ` Anthony Liguori
2008-10-12 18:17     ` Avi Kivity
2008-10-12 22:18       ` Anthony Liguori
2008-10-13  3:03         ` Anthony Liguori
2008-10-16  1:36           ` Uri Lublin
2008-10-16  4:14             ` Anthony Liguori
2008-10-16  8:13               ` Avi Kivity
2008-10-16 12:54                 ` Anthony Liguori
2008-10-16 14:23                   ` Uri Lublin
2008-10-16 14:32                     ` Avi Kivity
2008-10-16 14:49                       ` Uri Lublin
2008-10-17  2:47                         ` Anthony Liguori
2008-10-19 13:46                           ` Uri Lublin [this message]
2008-10-19 22:00                             ` Anthony Liguori
2008-10-22 16:23                               ` Uri Lublin
2008-10-16 10:52               ` Uri Lublin
2008-10-16  0:13   ` Uri Lublin
2008-10-16  4:10     ` Anthony Liguori
2008-10-16  8:16       ` Avi Kivity

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=48FB3A43.9000506@il.qumranet.com \
    --to=uri@il.qumranet.com \
    --cc=anthony@codemonkey.ws \
    --cc=avi@redhat.com \
    --cc=kvm@vger.kernel.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.