All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: ~hyman <hyman@git.sr.ht>
Cc: qemu-devel <qemu-devel@nongnu.org>,
	~hyman <yong.huang@smartx.com>, "Peter Xu" <peterx@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Juan Quintela" <quintela@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Eric Blake" <eblake@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Laurent Vivier" <lvivier@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: Re: [PATCH QEMU v8 4/9] migration: Introduce dirty-limit capability
Date: Thu, 13 Jul 2023 14:44:29 +0200	[thread overview]
Message-ID: <875y6oj80i.fsf@pond.sub.org> (raw)
In-Reply-To: <168870305868.29142.5121604177475325995-4@git.sr.ht> (hyman@git.sr.ht's message of "Wed, 07 Jun 2023 23:30:50 +0800")

~hyman <hyman@git.sr.ht> writes:

> From: Hyman Huang(黄勇) <yong.huang@smartx.com>
>
> Introduce migration dirty-limit capability, which can
> be turned on before live migration and limit dirty
> page rate durty live migration.
>
> Introduce migrate_dirty_limit function to help check
> if dirty-limit capability enabled during live migration.
>
> Meanwhile, refactor vcpu_dirty_rate_stat_collect
> so that period can be configured instead of hardcoded.
>
> dirty-limit capability is kind of like auto-converge
> but using dirty limit instead of traditional cpu-throttle
> to throttle guest down. To enable this feature, turn on
> the dirty-limit capability before live migration using
> migrate-set-capabilities, and set the parameters
> "x-vcpu-dirty-limit-period", "vcpu-dirty-limit" suitably
> to speed up convergence.
>
> Signed-off-by: Hyman Huang(黄勇) <yong.huang@smartx.com>
> Acked-by: Peter Xu <peterx@redhat.com>
> Reviewed-by: Juan Quintela <quintela@redhat.com>

[...]

> diff --git a/qapi/migration.json b/qapi/migration.json
> index e43371955a..031832cde5 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -497,6 +497,15 @@
>  #     are present.  'return-path' capability must be enabled to use
>  #     it.  (since 8.1)
>  #
> +# @dirty-limit: If enabled, migration will use the dirty-limit
> +#     algorithm to throttle down guest instead of auto-converge
> +#     algorithm. This algorithm only works when vCPU's dirtyrate

Two spaces after sentence-ending punctuation, please.

"dirty rate" with a space, because that's how we spell it elsewhere.

> +#     greater than 'vcpu-dirty-limit', read processes in guest os
> +#     aren't penalized any more, so the algorithm can improve
> +#     performance of vCPU during live migration. This is an optional
> +#     performance feature and should not affect the correctness of the
> +#     existing auto-converge algorithm. (since 8.1)
> +#

I'm still confused.

The text suggests there are two separate algorithms "to throttle down
guest": "auto converge" and "dirty limit", and we get to pick one.
Correct?

If it is correct, then the last sentence feels redundant: picking
another algorithm can't affect the algorithm we're *not* using.  What
are you trying to express here?

When do we use "auto converge", and when do we use "dirty limit"?

What does the user really need to know about these algorithms?  Enough
to pick one, I guess.  That means advantages and disadvantages of the
two algorithms.  Which are?

>  # Features:
>  #
>  # @unstable: Members @x-colo and @x-ignore-shared are experimental.
> @@ -512,7 +521,8 @@
>             'dirty-bitmaps', 'postcopy-blocktime', 'late-block-activate',
>             { 'name': 'x-ignore-shared', 'features': [ 'unstable' ] },
>             'validate-uuid', 'background-snapshot',
> -           'zero-copy-send', 'postcopy-preempt', 'switchover-ack'] }
> +           'zero-copy-send', 'postcopy-preempt', 'switchover-ack',
> +           'dirty-limit'] }
>  
>  ##
>  # @MigrationCapabilityStatus:

[...]



  reply	other threads:[~2023-07-13 12:44 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-07  4:10 [PATCH QEMU v8 0/9] migration: introduce dirtylimit capability ~hyman
2022-11-18  2:08 ` [PATCH QEMU v8 1/9] softmmu/dirtylimit: Add parameter check for hmp "set_vcpu_dirty_limit" ~hyman
2023-06-07 13:32 ` [PATCH QEMU v8 2/9] qapi/migration: Introduce x-vcpu-dirty-limit-period parameter ~hyman
2023-07-13 12:32   ` Markus Armbruster
2023-06-07 14:58 ` [PATCH QEMU v8 3/9] qapi/migration: Introduce vcpu-dirty-limit parameters ~hyman
2023-06-07 15:30 ` [PATCH QEMU v8 4/9] migration: Introduce dirty-limit capability ~hyman
2023-07-13 12:44   ` Markus Armbruster [this message]
2023-07-18  1:42     ` Yong Huang
2023-07-18 11:04       ` Markus Armbruster
2023-07-19  4:10         ` Yong Huang
2023-07-19  5:26           ` Markus Armbruster
2023-07-19  6:14             ` Yong Huang
2023-07-19  9:03               ` Markus Armbruster
2023-07-19  9:31                 ` Yong Huang
2023-06-07 15:32 ` [PATCH QEMU v8 5/9] migration: Refactor auto-converge capability logic ~hyman
2023-06-07 16:12 ` [PATCH QEMU v8 7/9] migration: Implement dirty-limit convergence algo ~hyman
2023-06-07 16:21 ` [PATCH QEMU v8 8/9] migration: Extend query-migrate to provide dirty page limit info ~hyman
2023-07-13 12:45   ` Markus Armbruster
2023-06-07 16:46 ` [PATCH QEMU v8 9/9] tests: Add migration dirty-limit capability test ~hyman
2023-06-15 13:29 ` [PATCH QEMU v8 6/9] migration: Put the detection logic before auto-converge checking ~hyman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875y6oj80i.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=hyman@git.sr.ht \
    --cc=lvivier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=richard.henderson@linaro.org \
    --cc=thuth@redhat.com \
    --cc=yong.huang@smartx.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.