> > 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.