> > 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...@intel.com>
> > Signed-off-by: Yang Zhang <yang.z.zh...@intel.com>
> > Reviewed-by: Dr.David Alan Gilbert <dgilb...@redhat.com>
> 
> Reviewed-by: Juan Quintela <quint...@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....
> 

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