On Tue, Mar 16, 2021 at 08:57:15PM +0800, Kunkun Jiang wrote: > When the host page is a huge page and something is sent in the > current iteration, migration_rate_limit() should be executed. > If not, it can be omitted. > > Signed-off-by: Keqian Zhu <zhukeqi...@huawei.com> > Signed-off-by: Kunkun Jiang <jiangkun...@huawei.com> > Reviewed-by: David Edmondson <david.edmond...@oracle.com> > --- > migration/ram.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/migration/ram.c b/migration/ram.c > index 72143da0ac..3eb5b0d7a7 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -2015,8 +2015,13 @@ static int ram_save_host_page(RAMState *rs, > PageSearchStatus *pss, > > pages += tmppages; > pss->page++; > - /* Allow rate limiting to happen in the middle of huge pages */ > - migration_rate_limit(); > + /* > + * Allow rate limiting to happen in the middle of huge pages if > + * something is sent in the current iteration. > + */ > + if (pagesize_bits > 1 && tmppages > 0) { > + migration_rate_limit(); > + }
Sorry I'm still not a fan of this - I'd even prefer calling that once more just to make sure it won't be forgotten to be called.. Not to say it's merely a noop. I'll leave this to Dave.. Maybe I'm too harsh! :) -- Peter Xu