test(vhost-user-blk): switch to crosvm backend in functional tests#4247
Merged
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #4247 +/- ##
==========================================
- Coverage 81.71% 81.69% -0.03%
==========================================
Files 240 240
Lines 29239 29239
==========================================
- Hits 23893 23887 -6
- Misses 5346 5352 +6
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
This removes 256 byte offest when requesting config from backend. There is no apparent reason why we should add the offset. Signed-off-by: Nikita Kalyazin <kalyazin@amazon.com>
Unfortunately this change cannot be split into multiple commits due to high level of entanglement of the changes. Reason for the change: the Qemu backend uses direct IO when working with the disk file which makes it scale very poorly. That results in intermittent test failures, because our functional integration tests run in parallel, and our ssh connection timeouts expire if the microVM does not boot in time. Switching from the Qemu to crosvm backend comes with the challenge that crosvm locks the disk file exclusively when opening it as rw (which makes sense). We have to make copies of the disk files before we give them to crosvm if we don't configure crosvm as readonly. One of the ripples of the above is an existing race condition in the partuuid_and_disk_path_host fixture over the disk file kicks in. We are removing this fixture altogether because now we use per microVM copies of the disks. Finally, this change explicitly configures performance tests to switch to the Qemu backend to preserve the status quo. We may switch them to the crosvm backend too at a later stage. Signed-off-by: Nikita Kalyazin <kalyazin@amazon.com>
153bced to
bbcf1ad
Compare
9 tasks
ShadowCurse
approved these changes
Nov 20, 2023
wearyzen
approved these changes
Nov 20, 2023
bchalios
reviewed
Nov 20, 2023
Contributor
bchalios
left a comment
There was a problem hiding this comment.
LGTM. just a single comment for code deduplication
4 tasks
bchalios
approved these changes
Nov 20, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is to address intermittent failures related to vhost-user-blk.
Unfortunately this change cannot be split into multiple commits due to high level of entanglement of the changes.
Changes
Switching from the Qemu to crosvm backend comes with the challenge that crosvm locks the disk file exclusively when opening it as rw (which makes sense). We have to make copies of the disk files before we give them to crosvm if we don't configure crosvm as readonly.
One of the ripples of the above is an existing race condition in the
partuuid_and_disk_path_hostfixture over the disk file kicks in. We are removing this fixture altogether because now we use per microVM copies of the disks.Finally, this change explicitly configures performance tests to switch to the Qemu backend to preserve the status quo. We may switch them to the crosvm backend too at a later stage.
Reason
The Qemu backend uses direct IO when working with the disk file which makes it scale very poorly. That results in intermittent test failures, because our functional integration tests run in parallel, and our ssh connection timeouts expire if the microVM does not boot in time.
License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license. For more information on following
Developer Certificate of Origin and signing off your commits, please check
CONTRIBUTING.md.PR Checklist
[ ] If a specific issue led to this PR, this PR closes the issue.[ ] Any required documentation changes (code and docs) are included in this PR.[ ] API changes follow the Runbook for Firecracker API changes.[ ] User-facing changes are mentioned inCHANGELOG.md.TODOs link to an issue.rust-vmm.