Hi,
While investigating the cause for the performance discrepancy of Virtualbox on NOVA vs hw_x86_64[_muen] [1], I have determined, with help from Alexander, that Virtualbox thread priorities [2] are not applied on base-hw. Even though priorities are specified when constructing the Cpu_connection [3], they have no effect since no quota is subsequently assigned/transferred. According to the 14.11 release notes [4], threads without quota have no guarantee to be scheduled and their priority is ignored. I believe this is the main cause for the difference in execution speed of Virtualbox on NOVA and base-hw.
I was wondering if you could confirm my analysis of the issue and provide some pointers on how to best achieve the proper application of Virtualbox thread priorities on base-hw.
Regards, Adrian
[1] - Even in recompiler-only mode the guest execution on NOVA is considerably faster than on hw_x86_64 or hw_x86_64_muen [2] - https://www.virtualbox.org/browser/vbox/trunk/include/iprt/thread.h#L90 [3] - https://github.com/genodelabs/genode/blob/master/repos/ports/src/virtualbox/... [4] - http://genode.org/documentation/release-notes/14.11#Trading_CPU_time_between...