* Peter Xu (pet...@redhat.com) wrote: > It will just never fail. Drop those return values where they're constantly > zeros. > > A tiny touch-up on the tracepoint so trace_ram_postcopy_send_discard_bitmap() > is called after the logic itself (which sounds more reasonable). > > Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > --- > migration/migration.c | 5 +---- > migration/ram.c | 20 +++++--------------- > migration/ram.h | 2 +- > 3 files changed, 7 insertions(+), 20 deletions(-) > > diff --git a/migration/migration.c b/migration/migration.c > index abaf6f9e3d..c2e5539721 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -2983,10 +2983,7 @@ static int postcopy_start(MigrationState *ms) > * that are dirty > */ > if (migrate_postcopy_ram()) { > - if (ram_postcopy_send_discard_bitmap(ms)) { > - error_report("postcopy send discard bitmap failed"); > - goto fail; > - } > + ram_postcopy_send_discard_bitmap(ms); > } > > /* > diff --git a/migration/ram.c b/migration/ram.c > index ecc744d54d..28f1ace0f7 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -2478,8 +2478,6 @@ static void > postcopy_chunk_hostpages_pass(MigrationState *ms, RAMBlock *block); > /** > * postcopy_each_ram_send_discard: discard all RAMBlocks > * > - * Returns 0 for success or negative for error > - * > * Utility for the outgoing postcopy code. > * Calls postcopy_send_discard_bm_ram for each RAMBlock > * passing it bitmap indexes and name. > @@ -2488,10 +2486,9 @@ static void > postcopy_chunk_hostpages_pass(MigrationState *ms, RAMBlock *block); > * > * @ms: current migration state > */ > -static int postcopy_each_ram_send_discard(MigrationState *ms) > +static void postcopy_each_ram_send_discard(MigrationState *ms) > { > struct RAMBlock *block; > - int ret; > > RAMBLOCK_FOREACH_NOT_IGNORED(block) { > postcopy_discard_send_init(ms, block->idstr); > @@ -2509,14 +2506,9 @@ static int > postcopy_each_ram_send_discard(MigrationState *ms) > * just needs indexes at this point, avoids it having > * target page specific code. > */ > - ret = postcopy_send_discard_bm_ram(ms, block); > + postcopy_send_discard_bm_ram(ms, block); > postcopy_discard_send_finish(ms); > - if (ret) { > - return ret; > - } > } > - > - return 0; > } > > /** > @@ -2589,8 +2581,6 @@ static void > postcopy_chunk_hostpages_pass(MigrationState *ms, RAMBlock *block) > /** > * ram_postcopy_send_discard_bitmap: transmit the discard bitmap > * > - * Returns zero on success > - * > * Transmit the set of pages to be discarded after precopy to the target > * these are pages that: > * a) Have been previously transmitted but are now dirty again > @@ -2601,7 +2591,7 @@ static void > postcopy_chunk_hostpages_pass(MigrationState *ms, RAMBlock *block) > * > * @ms: current migration state > */ > -int ram_postcopy_send_discard_bitmap(MigrationState *ms) > +void ram_postcopy_send_discard_bitmap(MigrationState *ms) > { > RAMState *rs = ram_state; > > @@ -2615,9 +2605,9 @@ int ram_postcopy_send_discard_bitmap(MigrationState *ms) > rs->last_sent_block = NULL; > rs->last_page = 0; > > - trace_ram_postcopy_send_discard_bitmap(); > + postcopy_each_ram_send_discard(ms); > > - return postcopy_each_ram_send_discard(ms); > + trace_ram_postcopy_send_discard_bitmap(); > } > > /** > diff --git a/migration/ram.h b/migration/ram.h > index f543e25765..2c6dc3675d 100644 > --- a/migration/ram.h > +++ b/migration/ram.h > @@ -57,7 +57,7 @@ int ram_save_queue_pages(const char *rbname, ram_addr_t > start, ram_addr_t len); > void acct_update_position(QEMUFile *f, size_t size, bool zero); > void ram_postcopy_migrated_memory_release(MigrationState *ms); > /* For outgoing discard bitmap */ > -int ram_postcopy_send_discard_bitmap(MigrationState *ms); > +void ram_postcopy_send_discard_bitmap(MigrationState *ms); > /* For incoming postcopy discard */ > int ram_discard_range(const char *block_name, uint64_t start, size_t length); > int ram_postcopy_incoming_init(MigrationIncomingState *mis); > -- > 2.32.0 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK