-
Notifications
You must be signed in to change notification settings - Fork 2
WIP XXX Migration Statistics #43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: gardenlinux
Are you sure you want to change the base?
WIP XXX Migration Statistics #43
Conversation
e29356d to
4101b11
Compare
| /// The final memory transmission info. | ||
| memory_info: MemoryTransmissionInfo, | ||
| }, | ||
| Failed { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
currently I don't like that this phase is part of this enum. Instead, on the top level we should have
Ongoing(InnerStateA), Cancelled(InnerStateB), Failed(InnerStateC)
vm-migration/src/progress.rs
Outdated
| pub memory_bytes_transmitted: u64, | ||
| pub memory_pages_4k_transmitted: u64, | ||
| pub memory_bytes_remaining_iteration: u64, | ||
| pub memory_bytes_remaining_total: u64, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
qemu also reports the dirty rate. Do we want to report this too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what's also missing is some sort of status (migration in-progess, migration-finished, ...)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
emu also reports the dirty rate. Do we want to report this too?
100%, sure. I just forgot it here
migration in-progess, migration-finished
I have it already, but I want to refactor it to make it more promiment. See my comment #43 (review)
f49e577 to
fdf5858
Compare
src/bin/ch-remote.rs
Outdated
| let clear = matches | ||
| .subcommand_matches("migration-progress") | ||
| .unwrap() | ||
| .get_one::<bool>("clear") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can completely nuke that clear complexity - there is no problem with keeping the old state around. As soon as a new migration starts, the state is overwritten anyway
vmm/src/api/mod.rs
Outdated
| } | ||
|
|
||
| #[derive(Clone, Deserialize, Serialize, Debug)] | ||
| pub struct VmMigrationProgressData { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can completely nuke that clear complexity - there is no problem with keeping the old state around. As soon as a new migration starts, the state is overwritten anyway
f612cf6 to
e9a3321
Compare
e9a3321 to
ecb5f45
Compare
ecb5f45 to
6038623
Compare
Signed-off-by: Philipp Schuster <[email protected]> On-behalf-of: SAP [email protected]
This prepares the HTTP endpoint to export ongoing VM live-migration progress. This works because of the following fundamental prerequisites: - internal API was made async - http thread was made async This way, one can send requests to fetch the latest state without blocking anywhere. Signed-off-by: Philipp Schuster <[email protected]> On-behalf-of: SAP [email protected]
The first version has the limitation that we populate the latest snapshot once per memory iteration, although this is the most interesting part by far. In a follow-up, we can make this more fine-grained. Signed-off-by: Philipp Schuster <[email protected]> On-behalf-of: SAP [email protected]
Signed-off-by: Philipp Schuster <[email protected]> On-behalf-of: SAP [email protected]
6038623 to
e6c80dd
Compare
No description provided.