Clarification in release notes 14.02

Thanks to Udo Steinberg for the notification.
This commit is contained in:
Norman Feske 2014-02-28 14:34:07 +01:00
parent bea9feb362
commit 4092cd1f6e

View File

@ -762,17 +762,19 @@ NOVA microhypervisor
The port of VirtualBox to Genode prompted us to improve the NOVA platform in The port of VirtualBox to Genode prompted us to improve the NOVA platform in
the following respects. the following respects.
NOVA used to omit the saving and restoring of the FPU state of the guest OS NOVA used to omit the propagation of the FPU state of the guest OS to the
during the world switch between the guest OS and the virtual machine monitor virtual machine monitor (VMM) during the world switch between the guest OS and
(VMM). With the Vancouver VMM, which is traditionally used on NOVA, the the VMM. With the Vancouver VMM, which is traditionally used on NOVA, this
omission of FPU context handling did not pose any problem because Vancouver omission did not pose any problem because Vancouver would never touch the FPU
did not touch the FPU. So the FPU context of the guest was always preserved state of the guest. So the FPU context of the guest was always preserved
throughout the handling of virtualization events. However, in contrast to the throughout the handling of virtualization events. However, in contrast to the
Vancouver VMM, VirtualBox relies on the FPU. Without properly saving and Vancouver VMM, VirtualBox relies on the propagation of the FPU state between
restoring the FPU state on each VM-enter/exit, both the guest OS and the guest running in VT-X non-root mode and the guest running within the
VirtualBox would corrupt each other's FPU state. After first implementing an VirtualBox recompiler. Without properly propagating the FPU state between both
virtualization back ends, both the guest OS in non-root mode and VirtualBox's
recompiler would corrupt each other's FPU state. After first implementing an
interim solution in our custom version of the kernel, the missing FPU context interim solution in our custom version of the kernel, the missing FPU context
handling had been implemented in the upstream version of NOVA as well. propagation had been implemented in the upstream version of NOVA as well.
In contrast to most kernels, NOVA did not allow a thread to yield its current In contrast to most kernels, NOVA did not allow a thread to yield its current
time slice to another thread. The only way to yield CPU time was to block on time slice to another thread. The only way to yield CPU time was to block on