Skip to content
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

Tests: reuse network namespaces #4966

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

pb8o
Copy link
Contributor

@pb8o pb8o commented Dec 19, 2024

Changes

Reuse network namespaces. This avoids spending time creating network devices and namespaces, which is a slow operation because of networking lock contention.

Also since we don't have lock contention, we can double the number of test workers and see an improvement.

Reason

To make functional test runs faster. Though this is low priority and the functional tests are not the long pole, this change is relatively small and self-contained.

The 2 changes together almost half the execution time:

instance before (s) after (s) %
m6a 361 195 -47%
m6g 245 137 -45%

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

  • I have read and understand CONTRIBUTING.md.
  • I have run tools/devtool checkstyle to verify that the PR passes the
    automated style checks.
  • I have described what is done in these changes, why they are needed, and
    how they are solving the problem in a clear and encompassing way.
  • I have updated any relevant documentation (both in code and in the docs)
    in the PR.
  • I have mentioned all user-facing changes in CHANGELOG.md.
  • If a specific issue led to this PR, this PR closes the issue.
  • When making API changes, I have followed the
    Runbook for Firecracker API changes.
  • I have tested all new and changed functionalities in unit tests and/or
    integration tests.
  • I have linked an issue to every new TODO.

  • This functionality cannot be added in rust-vmm.

pb8o added 3 commits December 19, 2024 11:07
Re-using namespaces saves a whole minute of the test run:

before: 302 passed, 25 skipped in 303.29s (0:05:03)
after: 301 passed, 25 skipped in 241.77s (0:04:01)

Signed-off-by: Pablo Barbáchano <[email protected]>
Now that there are no bottlenecks we can increase the concurrency of the
tests.

TBD Test run from X to Y (%)

before
after

Signed-off-by: Pablo Barbáchano <[email protected]>
Remove unused import

Signed-off-by: Pablo Barbáchano <[email protected]>
@pb8o pb8o added Priority: Low Indicates that an issue or pull request should be resolved behind issues or pull requests labelled ` Status: Awaiting author Indicates that an issue or pull request requires author action python Pull requests that update Python code labels Dec 19, 2024
@pb8o pb8o self-assigned this Dec 19, 2024
Copy link

codecov bot commented Dec 19, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 83.93%. Comparing base (70ac154) to head (ca80c11).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4966   +/-   ##
=======================================
  Coverage   83.93%   83.93%           
=======================================
  Files         248      248           
  Lines       27791    27791           
=======================================
  Hits        23327    23327           
  Misses       4464     4464           
Flag Coverage Δ
5.10-c5n.metal 84.51% <ø> (ø)
5.10-m5n.metal 84.49% <ø> (ø)
5.10-m6a.metal 83.78% <ø> (ø)
5.10-m6g.metal 80.61% <ø> (ø)
5.10-m6i.metal 84.49% <ø> (-0.01%) ⬇️
5.10-m7g.metal 80.61% <ø> (ø)
6.1-c5n.metal 84.51% <ø> (+<0.01%) ⬆️
6.1-m5n.metal 84.50% <ø> (+<0.01%) ⬆️
6.1-m6a.metal 83.78% <ø> (ø)
6.1-m6g.metal 80.61% <ø> (ø)
6.1-m6i.metal 84.50% <ø> (+<0.01%) ⬆️
6.1-m7g.metal 80.61% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: Low Indicates that an issue or pull request should be resolved behind issues or pull requests labelled ` python Pull requests that update Python code Status: Awaiting author Indicates that an issue or pull request requires author action
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant