xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Wen Congyang <wency@cn.fujitsu.com>, xen devel <xen-devel@lists.xen.org>
Cc: Ian Campbell <Ian.Campbell@citrix.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>,
	Jiang Yunhong <yunhong.jiang@intel.com>,
	Dong Eddie <eddie.dong@intel.com>,
	Paul Durrant <paul.durrant@citrix.com>,
	Yang Hongyang <yanghy@cn.fujitsu.com>,
	Lai Jiangshan <laijs@cn.fujitsu.com>
Subject: Re: [RFC Patch v2 03/17] don't zero out ioreq page
Date: Fri, 8 Aug 2014 10:08:51 +0100	[thread overview]
Message-ID: <53E493A3.6000209@citrix.com> (raw)
In-Reply-To: <1407486004-23487-4-git-send-email-wency@cn.fujitsu.com>

On 08/08/14 09:19, Wen Congyang wrote:
> ioreq page may contain some pending I/O requests, and we need to
> handle the pending I/O req after migration.
>
> TODO:
> 1. update qemu to handle the pending I/O req

Your very reasoning for introducing this patch proves you have a race
condition between sending this page and sending the qemu state where an
ioreq might get dropped or processed twice.

As I said before, you are now doing things with the live migration code
which it was never intended/designed for.  I have learn't the hard way
that there are many subtle corner cases (most of which lead to VM
corruption), and you need to be able to prove that your new changes are
safe.

~Andrew

>
> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
> Cc: Paul Durrant <paul.durrant@citrix.com>
> ---
>  tools/libxc/xc_domain_restore.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/tools/libxc/xc_domain_restore.c b/tools/libxc/xc_domain_restore.c
> index 42abb22..2d6139c 100644
> --- a/tools/libxc/xc_domain_restore.c
> +++ b/tools/libxc/xc_domain_restore.c
> @@ -2301,9 +2301,7 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
>      }
>  
>      /* These comms pages need to be zeroed at the start of day */
> -    if ( xc_clear_domain_page(xch, dom, tailbuf.u.hvm.magicpfns[0]) ||
> -         xc_clear_domain_page(xch, dom, tailbuf.u.hvm.magicpfns[1]) ||
> -         xc_clear_domain_page(xch, dom, tailbuf.u.hvm.magicpfns[2]) )
> +    if ( xc_clear_domain_page(xch, dom, tailbuf.u.hvm.magicpfns[2]) )
>      {
>          PERROR("error zeroing magic pages");
>          goto out;

  reply	other threads:[~2014-08-08  9:08 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-08  8:19 [RFC Patch v2 00/17] Some bugfix patches Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 01/17] copy the correct page to memory Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 02/17] csum the correct page Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 03/17] don't zero out ioreq page Wen Congyang
2014-08-08  9:08   ` Andrew Cooper [this message]
2014-08-08  9:43     ` Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 04/17] blktap2: dynamic allocate aio_requests to avoid -EBUSY error Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 05/17] block-remus: fix memory leak Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 06/17] block-remus: pass uuid to the callback td_open Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 07/17] blktap2: return the correct dev path Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 08/17] block-remus: use correct way to get remus_image Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 09/17] block-remus: fix bug in tdremus_close() Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 10/17] blktap2: use correct way to get free event id Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 11/17] blktap2: don't return negative " Wen Congyang
2014-08-08  8:19 ` [RFC Patch v2 12/17] blktap2: use correct way to define array Wen Congyang
2014-08-08  8:20 ` [RFC Patch v2 13/17] don't call client_flush() when switching to unprotected mode Wen Congyang
2014-08-08  8:20 ` [RFC Patch v2 14/17] pass correct file to qemu if we use blktap2 Wen Congyang
2014-08-08  8:20 ` [RFC Patch v2 15/17] support blktap remus in xl Wen Congyang
2014-08-08  8:20 ` [RFC Patch v2 16/17] update libxl__device_disk_from_xs_be() to support blktap device Wen Congyang
2014-08-08  8:20 ` [RFC Patch v2 17/17] x86/hvm: Always set pending event injection when loading VMC[BS] state Wen Congyang
  -- strict thread matches above, loose matches on Subject: below --
2014-08-08  8:10 [RFC Patch v2 00/17] Some bugfix patches Wen Congyang
2014-08-08  8:10 ` [RFC Patch v2 03/17] don't zero out ioreq page Wen Congyang

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=53E493A3.6000209@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=eddie.dong@intel.com \
    --cc=laijs@cn.fujitsu.com \
    --cc=paul.durrant@citrix.com \
    --cc=wency@cn.fujitsu.com \
    --cc=xen-devel@lists.xen.org \
    --cc=yanghy@cn.fujitsu.com \
    --cc=yunhong.jiang@intel.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).