From: Elena Ufimtseva <elena.ufimtseva@oracle.com>
To: qemu-devel@nongnu.org
Cc: eduardo@habkost.net, marcel.apfelbaum@gmail.com,
philmd@linaro.org, wangyanan55@huawei.com, peterx@redhat.com,
farosas@suse.de, eblake@redhat.com, armbru@redhat.com
Subject: [PATCH RFC 0/2] migration: introduce strict SLA
Date: Fri, 21 Jun 2024 07:32:19 -0700 [thread overview]
Message-ID: <20240621143221.198784-1-elena.ufimtseva@oracle.com> (raw)
Hello
This RFC patchset introduces strict downtime SLA for live migration by
restricting how long switchover phase can take and aborts live migration
if this exceeded.
Various consumers of VFIO Live Migration are bound checks on how long
the switchover process lasts. Some things are not accounted for and are
unbounded, such as:
- Time to quiesce/resume the VF
- Time to save/resume all system state
- How fast we can save/restore VF state
These cases lead to the final downtime being larger than what was
configured in by setting a downtime limit.
In some applications it is important to observe the requested downtime
and re-try live migration some other time if the downtime requirements
cannot be satisfied.
This patchset introduces capability to abort live migration if
the downtime exceeds a certain value specified by switchover limit
migration parameter.
When a guest stops at the source, measure the downtime and if
it exceeds a threshold we cancel the migration and resume the guest.
The destination is being notified of the source downtime and its threshold
and starts measuring downtime. Destination will cancel live migration
if downtime exceeds the swithover limit.
The migration with this capability would be used this way for example:
migrate_set_capability return-path on
migrate_set_capability switchover-abort on
migrate_set_parameter downtime-limit 300
migrate_set_parameter switchover-limit 10
The migration will be aborted if the downtime exceeds
10ms (switchover-limit) and total downtime would not
be more than 310ms.
Please send your comments and recommendations.
The patchset idea originally comes from Joao Martins
<joao.m.martins@oracle.com>.
Elena Ufimtseva (2):
migration: abort when switchover limit exceeded
migration: abort on destination if switchover limit exceeded
hw/core/machine.c | 1 +
include/migration/client-options.h | 1 +
migration/migration-hmp-cmds.c | 10 ++++
migration/migration.c | 41 +++++++++++++++
migration/migration.h | 20 ++++++++
migration/options.c | 56 +++++++++++++++++++++
migration/options.h | 1 +
migration/savevm.c | 81 ++++++++++++++++++++++++++++++
migration/savevm.h | 2 +
migration/trace-events | 3 ++
qapi/migration.json | 27 ++++++++--
11 files changed, 239 insertions(+), 4 deletions(-)
--
2.34.1
next reply other threads:[~2024-06-21 14:33 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-21 14:32 Elena Ufimtseva [this message]
2024-06-21 14:32 ` [PATCH RFC 1/2] migration: abort when switchover limit exceeded Elena Ufimtseva
2024-06-24 19:19 ` Peter Xu
2024-06-25 19:05 ` Daniel P. Berrangé
2024-06-21 14:32 ` [PATCH RFC 2/2] migration: abort on destination if " Elena Ufimtseva
2024-06-24 19:41 ` Peter Xu
2024-06-25 11:38 ` Joao Martins
2024-06-25 14:53 ` Peter Xu
2024-06-25 16:31 ` Joao Martins
2024-06-25 19:03 ` Peter Xu
2024-06-26 11:04 ` Joao Martins
2024-06-26 18:41 ` Peter Xu
2024-07-26 7:41 ` Elena Ufimtseva
2024-08-21 19:45 ` Peter Xu
2024-06-25 18:37 ` Daniel P. Berrangé
2024-06-26 11:29 ` Joao Martins
2024-06-26 11:34 ` Daniel P. Berrangé
2024-06-26 12:12 ` Joao Martins
2024-06-26 12:20 ` Daniel P. Berrangé
2024-06-25 19:12 ` Daniel P. Berrangé
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=20240621143221.198784-1-elena.ufimtseva@oracle.com \
--to=elena.ufimtseva@oracle.com \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=farosas@suse.de \
--cc=marcel.apfelbaum@gmail.com \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=wangyanan55@huawei.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).