Skip to content

Fix net RX freeze bug #2064

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

Merged
merged 3 commits into from
Aug 4, 2020

Conversation

ioanachirca
Copy link
Contributor

Reason for This PR

#2057

Description of Changes

License Acceptance

By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license.

PR Checklist

[Author TODO: Meet these criteria.]
[Reviewer TODO: Verify that these criteria are met. Request changes if not]

  • All commits in this PR are signed (git commit -s).
  • The reason for this PR is clearly provided (issue no. or explanation).
  • The description of changes is clear and encompassing.
  • Any required documentation changes (code and docs) are included in this PR.
  • Any newly added unsafe code is properly documented.
  • Any API changes are reflected in firecracker/swagger.yaml.
  • Any user-facing changes are mentioned in CHANGELOG.md.
  • All added/changed functionality is tested.

ioanachirca and others added 3 commits August 4, 2020 17:39
This is a regression test for
firecracker-microvm#1444

Signed-off-by: Ioana Chirca <[email protected]>
Validate that the RX queue won't freeze under high stateless ingress
traffic when encountering bottlenecks on the tap.

Signed-off-by: Serban Iorga <[email protected]>
Under heavy ingress traffic we might end up in a situation where the tap
device is full, but the rx.deferred_frame flag is not set. Beeing in
this state the firecracker RX queue becomes effectively blocked. The tap
won't issue any new event because of the EPOLLET flag, while any rate
limiter or RX queue event won't do any processing because the
rx.deferred_frame flag is not set.

We need to make sure we set the rx.deferred_frame flag on all the paths
that leave unprocessed frames in the tap.

Signed-off-by: Serban Iorga <[email protected]>
Signed-off-by: Ioana Chirca <[email protected]>
@ioanachirca ioanachirca self-assigned this Aug 4, 2020
@ioanachirca ioanachirca merged commit 009ec85 into firecracker-microvm:master Aug 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants