This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Virtual exception in Nested Virtualization ARMv8.3

Hi all,

Nested virtualization is the ability to run a virtual machine inside another virtual machine. In other words, it’s about running a hypervisor (the guest hypervisor) on top of another hypervisor (the host hypervisor).

Reference: https://developer.arm.com/architectures/learn-the-architecture/armv8-a-virtualization/nested-virtualization

How to emulate synchronous exception for Guest Hypervisor (EL1) in Host Hypervisor (EL2)?

Example: Stage 2 address translation fault in Guest OS (EL1) will be routed to Host Hypervisor (EL2), not Guest Hypervisor. How the Guest Hypervisor knows and handles this fault.

Thanks,

Parents
  • Actually the above URL mentioned that:

    "Armv8.3-A added the NV and NV1 controls.  Accesses to _EL2 registers from EL1 are usually undefined, and accesses would cause an exception to EL1.  The NV and NV1 bits cause EL1 accesses to _EL2 registers to trap to EL2 instead. This allows a Guest Hypervisor to run at EL1, with the Host Hypervisor at EL2 emulating some of its operations.  NV also traps ERETs from EL1."

    For the Stage 2 address translation from Guest OS(EL1), it will be routed to EL2 while the Host Hypervisor is running at. Guest Hypervisor running at EL1 will not notice that.

Reply
  • Actually the above URL mentioned that:

    "Armv8.3-A added the NV and NV1 controls.  Accesses to _EL2 registers from EL1 are usually undefined, and accesses would cause an exception to EL1.  The NV and NV1 bits cause EL1 accesses to _EL2 registers to trap to EL2 instead. This allows a Guest Hypervisor to run at EL1, with the Host Hypervisor at EL2 emulating some of its operations.  NV also traps ERETs from EL1."

    For the Stage 2 address translation from Guest OS(EL1), it will be routed to EL2 while the Host Hypervisor is running at. Guest Hypervisor running at EL1 will not notice that.

Children