qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Juan Quintela <quintela@redhat.com>
To: Liang Li <liang.z.li@intel.com>
Cc: qemu-devel@nongnu.org, armbru@redhat.com, lcapitulino@redhat.com,
	Yang Zhang <yang.z.zhang@intel.com>,
	amit.shah@redhat.com, dgilbert@redhat.com
Subject: Re: [Qemu-devel] [v7 09/14] migration: Make compression co-work with xbzrle
Date: Wed, 08 Apr 2015 13:26:05 +0200	[thread overview]
Message-ID: <87egnun9o2.fsf@neno.neno> (raw)
In-Reply-To: <1428474011-30797-10-git-send-email-liang.z.li@intel.com> (Liang Li's message of "Wed, 8 Apr 2015 14:20:06 +0800")

Liang Li <liang.z.li@intel.com> wrote:
> Now, multiple thread compression can co-work with xbzrle. when
> xbzrle is on, multiple thread compression will only work at the
> first round of RAM data sync.
>
> Signed-off-by: Liang Li <liang.z.li@intel.com>
> Signed-off-by: Yang Zhang <yang.z.zhang@intel.com>
> Reviewed-by: Dr.David Alan Gilbert <dgilbert@redhat.com>

Reviewed-by: Juan Quintela <quintela@redhat.com>


>  /* The empty QEMUFileOps will be used by file in CompressParam */
>  static const QEMUFileOps empty_ops = { };
> +static bool compression_switch;
> +
>  static DecompressParam *decomp_param;
>  static QemuThread *decompress_threads;
>  static uint8_t *compressed_data_buf;
> @@ -436,6 +438,7 @@ void migrate_compress_threads_create(void)
>      if (!migrate_use_compression()) {
>          return;
>      }
> +    compression_switch = true;
>      thread_count = migrate_compress_threads();
>      compress_threads = g_new0(QemuThread, thread_count);
>      comp_param = g_new0(CompressParam, thread_count);
> @@ -1059,9 +1062,16 @@ static int ram_find_and_save_block(QEMUFile *f, bool last_stage,
>                  block = QLIST_FIRST_RCU(&ram_list.blocks);
>                  complete_round = true;
>                  ram_bulk_stage = false;
> +                if (migrate_use_xbzrle()) {
> +                    /* If xbzrle is on, stop using the data compression at this
> +                     * point. In theory, xbzrle can do better than compression.
> +                     */
> +                    flush_compressed_data(f);
> +                    compression_switch = false;
> +                }

I still think that it should be better:
a- don't mix them (or)
b- if we mix them, just use compression always that we sent whole pages.
   if xbzrle is not able to compress a page, use compression after
   putting the page on the cache.  i.e. try first to set through xbzrle,
   and if that don't work, use compression if possible (after zecond
   iteration, of course).)


But as you are the one doing the code....

Later, Juan.

PD. Yes, it can be changed later.

  reply	other threads:[~2015-04-08 11:26 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-08  6:19 [Qemu-devel] [PATCH v7 0/14] migration: Add a new feature to do live migration Liang Li
2015-04-08  6:19 ` [Qemu-devel] [v7 01/14] docs: Add a doc about multiple thread compression Liang Li
2015-04-08  6:19 ` [Qemu-devel] [v7 02/14] migration: Add the framework of multi-thread compression Liang Li
2015-04-08  6:20 ` [Qemu-devel] [v7 03/14] migration: Add the framework of multi-thread decompression Liang Li
2015-04-08  6:20 ` [Qemu-devel] [v7 04/14] qemu-file: Add compression functions to QEMUFile Liang Li
2015-04-08  6:20 ` [Qemu-devel] [v7 05/14] arch_init: Alloc and free data struct for compression Liang Li
2015-04-08  6:20 ` [Qemu-devel] [v7 06/14] arch_init: Add and free data struct for decompression Liang Li
2015-04-08  6:20 ` [Qemu-devel] [v7 07/14] migration: Split save_zero_page from ram_save_page Liang Li
2015-04-08  6:20 ` [Qemu-devel] [v7 08/14] migration: Add the core code of multi-thread compression Liang Li
2015-04-08 11:14   ` Juan Quintela
2015-04-08  6:20 ` [Qemu-devel] [v7 09/14] migration: Make compression co-work with xbzrle Liang Li
2015-04-08 11:26   ` Juan Quintela [this message]
2015-04-08 13:52     ` Li, Liang Z
2015-04-08  6:20 ` [Qemu-devel] [v7 10/14] migration: Add the core code for decompression Liang Li
2015-04-08 11:34   ` Juan Quintela
2015-04-08 14:00     ` Li, Liang Z
2015-04-08 14:48       ` Juan Quintela
2015-04-08  6:20 ` [Qemu-devel] [v7 11/14] migration: Add interface to control compression Liang Li
2015-04-08 11:34   ` Juan Quintela
2015-04-14 12:00   ` Eric Blake
2015-04-08  6:20 ` [Qemu-devel] [v7 12/14] migration: Use an array instead of 3 parameters Liang Li
2015-04-08 11:37   ` Juan Quintela
2015-04-14 12:01     ` Eric Blake
2015-04-14 12:03   ` Eric Blake
2015-04-15  8:13     ` Juan Quintela
2015-04-15  8:35       ` Li, Liang Z
2015-04-08  6:20 ` [Qemu-devel] [v7 13/14] migration: Add qmp commands to set and query parameters Liang Li
2015-04-08 11:39   ` Juan Quintela
2015-04-14  2:07     ` Li, Liang Z
2015-04-14  9:24       ` Juan Quintela
2015-04-14 12:09   ` Eric Blake
2015-04-14 12:16     ` Eric Blake
2015-04-08  6:20 ` [Qemu-devel] [v7 14/14] migration: Add hmp interface " Liang Li
2015-04-14 12:20   ` Eric Blake

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=87egnun9o2.fsf@neno.neno \
    --to=quintela@redhat.com \
    --cc=amit.shah@redhat.com \
    --cc=armbru@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=liang.z.li@intel.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yang.z.zhang@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).