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

libsel4vm: implement translation vspace #114

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

chrisguikema
Copy link
Contributor

This commit keeps the guest memory space mapped into the VMM at all times. This speeds up VMM access to guest memory space, which is vital for high throughput virtio processes.

Furthermore, multicore x86 guests have multiple VMMs running simultaneously. Without the translation vspace, guest memory access must be locked around a mutex, which kills performance.

In order to not break existing functionality, this option is wrapped around a default OFF CMake variable.

@chrisguikema
Copy link
Contributor Author

The translation vspace used to exist before the ARM and x86 libraries were merged. We had to re-implement it in order for multicore x86 guests to be functional. Then when doing virtio-net work, we realized it dramatically increased performance.

This commit keeps the guest memory space mapped into the VMM at all
times. This speeds up VMM access to guest memory space, which is
vital for high throughput virtio processes.

Furthermore, multicore x86 guests have multiple VMMs running
simultaneously. Without the translation vspace, guest memory access must
be locked around a mutex, which kills performance.

In order to not break existing functionality, this option is wrapped
around a default OFF CMake variable.

Signed-off-by: Chris Guikema <[email protected]>
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