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

Fix unregistering memory ranges from UFFD when expanding the balloon #4988

Open
wants to merge 1 commit into
base: firecracker-v1.10
Choose a base branch
from

Conversation

maggie-lou
Copy link

@maggie-lou maggie-lou commented Jan 10, 2025

Changes

When using a UFFD handler to restore a snapshot with a memory balloon, do not mmap anonymous regions over removed addresses.

Reason

We are using a UFFD handler with a memory balloon to track removed which pages were removed in the guest. When an anonymous region is mmapped over the pre-existing one, that region is deregistered from uffd and uffd will no longer receive events for that memory range. (In other words, we would expect UFFD to receive an EVENT_REMOVE for the memory ranges that the balloon has expanded into. However because the memory was remapped, we never receive events for that range.)

Steps to recreate

In this example, when using firecracker v1.10.0, you can see that the UFFD handler never receives any remove events. When using this patched version, the handler will correctly start receiving and handling remove events.

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][3].

PR Checklist

  • I have read and understand [CONTRIBUTING.md][3].
  • 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.

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.

1 participant