Assuming VBox is running an x86_64 guest on a x86_64 Linux machine, with
Intel VTx or AMD-V extension enabled, I would like to know whether VBox I/O
devices emulation code gets executed completely in user-space (as it
happens with QEMU or bhyve), or some parts are executed in kernel space.
To make the question more clear with an example, let's say the guest
"e1000" NIC driver writes to the TDT device register, in order to trigger
packets transmission. The associated register write callback function (i.e.
e1kRegWriteTDT in DevE1000.cpp) gets executed by VBox right after the
register write traps into VBoX (i.e. by means of a VM-EXIT). In this
scenario, is e1kRegWriteTDT() executed in kernel-space or in user-space?
vbox-dev mailing list