On Tue, Sep 20, 2022 at 06:52:27PM -0400, Peter Xu wrote: > With the new code to send pages in rp-return thread, there's little help to > keep lots of the old code on maintaining the preempt state in migration > thread, because the new way should always be faster.. > > Then if we'll always send pages in the rp-return thread anyway, we don't > need those logic to maintain preempt state anymore because now we serialize > things using the mutex directly instead of using those fields. > > It's very unfortunate to have those code for a short period, but that's > still one intermediate step that we noticed the next bottleneck on the > migration thread. Now what we can do best is to drop unnecessary code as > long as the new code is stable to reduce the burden. It's actually a good > thing because the new "sending page in rp-return thread" model is (IMHO) > even cleaner and with better performance. > > Remove the old code that was responsible for maintaining preempt states, at > the meantime also remove x-postcopy-preempt-break-huge parameter because > with concurrent sender threads we don't really need to break-huge anymore. > > Signed-off-by: Peter Xu <pet...@redhat.com> > --- > migration/migration.c | 2 - > migration/ram.c | 258 +----------------------------------------- > 2 files changed, 3 insertions(+), 257 deletions(-) > > diff --git a/migration/migration.c b/migration/migration.c > index fae8fd378b..698fd94591 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -4399,8 +4399,6 @@ static Property migration_properties[] = { > DEFINE_PROP_SIZE("announce-step", MigrationState, > parameters.announce_step, > DEFAULT_MIGRATE_ANNOUNCE_STEP), > - DEFINE_PROP_BOOL("x-postcopy-preempt-break-huge", MigrationState, > - postcopy_preempt_break_huge, true),
Forgot to drop the variable altogether: diff --git a/migration/migration.h b/migration/migration.h index cdad8aceaa..ae4ffd3454 100644 --- a/migration/migration.h +++ b/migration/migration.h @@ -340,13 +340,6 @@ struct MigrationState { bool send_configuration; /* Whether we send section footer during migration */ bool send_section_footer; - /* - * Whether we allow break sending huge pages when postcopy preempt is - * enabled. When disabled, we won't interrupt precopy within sending a - * host huge page, which is the old behavior of vanilla postcopy. - * NOTE: this parameter is ignored if postcopy preempt is not enabled. - */ - bool postcopy_preempt_break_huge; /* Needed by postcopy-pause state */ QemuSemaphore postcopy_pause_sem; Will squash this in in next version. -- Peter Xu