qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [v7 09/14] migration: Make compression co-work with xbz


From: Li, Liang Z
Subject: Re: [Qemu-devel] [v7 09/14] migration: Make compression co-work with xbzrle
Date: Wed, 8 Apr 2015 13:52:15 +0000

> > 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 <address@hidden>
> > Signed-off-by: Yang Zhang <address@hidden>
> > Reviewed-by: Dr.David Alan Gilbert <address@hidden>
> 
> Reviewed-by: Juan Quintela <address@hidden>
> 
> 
> >  /* 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....
> 

I prefer the b solution that you suggest, maybe I can send a patch later. But 
now, I don't want to
make a big changes before the patch being merged.

Liang

> Later, Juan.
> 
> PD. Yes, it can be changed later.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]