Hello L4 hackers, Hope y'all are doing well. I am back with another question, this time regarding vcpus and its "extended" add-on. From reading the documentation and some tinkering, it seems the default vcpu is quite capable of performing virtualization tasks as the virtualized CPU. 1. When looking at code in uvmm, it seems the "normal" vcpu is used for virtualization by default, is this correct? 2. When should we need to use the "extended" add on? a. It seems "extended" uses additional hardware assisted virtualization features, is this understanding correct? b. If the assumption in a. is correct, what pros and cons does running "extended" have? (Maybe additional safety/stability improvements?) c. Are there hardware limitations for running in "extended" mode? (For example, is A76 supported?) Thank you so much for your attention :) Best, David
Hello, On Fri May 29, 2026 at 03:47:44 -0000, David Q wrote:
Hope y'all are doing well. I am back with another question, this time regarding vcpus and its "extended" add-on.
From reading the documentation and some tinkering, it seems the default vcpu is quite capable of performing virtualization tasks as the virtualized CPU.
Indeed. Threads can enable vcpu mode that allows them to have an asychronous execution mode. This is indepedent of any virtualization feature offered by the CPUs (such as Intel VT-x, AMD SVM, ARM VE), i.e. works on any CPU. When paravirtualizing an OS this vcpu mode is useful. For example, L4Linux uses this. L4Linux is a port of the Linux kernel to the L4Re interfaces. It runs on any CPU where L4Re runs, i.e. also on older CPUs without explicit virtualization support.
1. When looking at code in uvmm, it seems the "normal" vcpu is used for virtualization by default, is this correct?
No. uvmm is a virtual machine monitor that uses virtualization features of the CPU, i.e. only works with the extended vcpu feature.
2. When should we need to use the "extended" add on?
When hardware-assisted virtualization features (as listed above) shall be used. Nowadays: This is the standard when doing virtualization.
a. It seems "extended" uses additional hardware assisted virtualization features, is this understanding correct?
The extended vcpu just uses the hardware support for virtualization.
b. If the assumption in a. is correct, what pros and cons does running "extended" have? (Maybe additional safety/stability improvements?) c. Are there hardware limitations for running in "extended" mode? (For example, is A76 supported?)
The A76 has virtualization support, so uvmm can be used to run VMs. BR, Adam
participants (2)
-
Adam Lackorzynski -
David Q