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

Consider accepting interrupts while in VMX root context #123

Open
ALSchwalm opened this issue Jan 22, 2021 · 0 comments
Open

Consider accepting interrupts while in VMX root context #123

ALSchwalm opened this issue Jan 22, 2021 · 0 comments

Comments

@ALSchwalm
Copy link
Collaborator

Currently we always mask external interrupts in the hypervisor context. This simplifies the design, but can hurt latency characteristics for high priority interrupts. Consider the following situation with our current logic:

  1. Interrupts are not masked in the guest
  2. An external low-priority interrupt arrives triggering a vmexit
  3. As the vmexit occurs, external interrupts are masked
  4. While processing the interrupt, a higher priority interrupt arrives
  5. Because interrupts are masked, nothing happens with this interrupt immediately
  6. After finishing processing the interrupt, it is injected in to the guest and the guest is re-entered
  7. At this point we should get a vmexit for the high-priority interrupt
  8. We process and ultimately inject the high-priority interrupt
  9. Now the guest jumps to the high-priority handler

Having interrupt handling at the hypervisor level would essentially allow us to coalesce interrupt delivery in a single vmexit, which should improve latency properties. However, this would be a significant change to the hypervisor design and should not be done without a lot of planning.

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

No branches or pull requests

1 participant