On Tue, 13 Jun 2023 16:57:48 +0200 Juan Quintela <quint...@redhat.com> wrote:
> Signed-off-by: Juan Quintela <quint...@redhat.com> Nit: Probably makes sense to rename it to try_compress_page or similar. And probably for zero_page and xbzrle (when factored out in it's own function) too. > --- > migration/ram-compress.h | 4 ++-- > migration/ram-compress.c | 17 ++++++++++------- > migration/ram.c | 2 +- > 3 files changed, 13 insertions(+), 10 deletions(-) > > diff --git a/migration/ram-compress.h b/migration/ram-compress.h > index e55d3b50bd..b228640092 100644 > --- a/migration/ram-compress.h > +++ b/migration/ram-compress.h > @@ -60,8 +60,8 @@ void compress_threads_save_cleanup(void); > int compress_threads_save_setup(void); > > void flush_compressed_data(int (send_queued_data(CompressParam *))); > -int compress_page_with_multi_thread(RAMBlock *block, ram_addr_t offset, > - int (send_queued_data(CompressParam *))); > +bool compress_page_with_multi_thread(RAMBlock *block, ram_addr_t offset, > + int (send_queued_data(CompressParam > *))); > > int wait_for_decompress_done(void); > void compress_threads_load_cleanup(void); > diff --git a/migration/ram-compress.c b/migration/ram-compress.c > index 47b600d62b..8ce9519f3d 100644 > --- a/migration/ram-compress.c > +++ b/migration/ram-compress.c > @@ -262,10 +262,13 @@ static inline void set_compress_params(CompressParam > *param, RAMBlock *block, > param->trigger = true; > } > > -int compress_page_with_multi_thread(RAMBlock *block, ram_addr_t offset, > - int (send_queued_data(CompressParam *))) > +/* > + * Return true when it compress a page > + */ > +bool compress_page_with_multi_thread(RAMBlock *block, ram_addr_t offset, > + int (send_queued_data(CompressParam *))) > { > - int idx, thread_count, pages = -1; > + int idx, thread_count; > bool wait = migrate_compress_wait_thread(); > > thread_count = migrate_compress_threads(); > @@ -283,8 +286,8 @@ retry: > > qemu_cond_signal(¶m->cond); > qemu_mutex_unlock(¶m->mutex); > - pages = 1; > - break; > + qemu_mutex_unlock(&comp_done_lock); > + return true; > } > } > > @@ -292,13 +295,13 @@ retry: > * wait for the free thread if the user specifies 'compress-wait-thread', > * otherwise we will post the page out in the main thread as normal page. > */ > - if (pages < 0 && wait) { > + if (wait) { > qemu_cond_wait(&comp_done_cond, &comp_done_lock); > goto retry; > } > qemu_mutex_unlock(&comp_done_lock); > > - return pages; > + return false; > } > > /* return the size after decompression, or negative value on error */ > diff --git a/migration/ram.c b/migration/ram.c > index 53dec4d305..2a3ff2c36e 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -2034,7 +2034,7 @@ static bool save_compress_page(RAMState *rs, > PageSearchStatus *pss, > return false; > } > > - if (compress_page_with_multi_thread(block, offset, send_queued_data) > > 0) { > + if (compress_page_with_multi_thread(block, offset, send_queued_data)) { > return true; > } >
pgpS8MmMBtnrD.pgp
Description: OpenPGP digital signature