October 11 2025 Saturday
Type 2 Hypervisors and the evils of "E" cores
In this post I want to give some pointers on making VirtualBox (or any Type 2 hypervisor) run “better” on CPUs that use Big-Little CPU architecture.
First and foremost, this information is provided without warranty, guarantee of correctness, or applicability to your individual situation. As always with information, YMMV (your mileage may vary). Again, any attempt you make is at your own risk. I am simply trying to help.
OK, what is Big-Little? It’s an Intel technology (also found on recent AMD CPUs) that divides CPU cores into two tiers: Big (performance or “P” cores) and Little (efficiency or “E” cores). E cores are typically used for background tasks or processes that don’t require immediate attention, such as dormant browser tabs.
My regular desktop PC has an Intel i9-13900T CPU, which features eight P cores and 16 E cores. You can see this by checking the CPU specs from your CPU manufacturer:
https://www.intel.com/content/www/us/en/products/sku/230498/intel-core-i913900t-processor-36m-cache-up-to-5-30-ghz/specifications.html
Now, Windows doesn't really tell you which is which, so in Task Manager, you can’t distinguish. But for anything virtualization, E cores ARE SIMPLY ABYSMAL. If a VM is moved to an E core, it pretty much stops responding. The moral of the story is that VMs need to run on P cores.
“That’s great news, Darren, but how does one accomplish this?” I hear you ask. There are ways. Again, do these at your own risk and YMMV. Personally, I use a program called “Process Lasso”. This lets me tag specific EXE files and processes to ONLY run on P cores and keep them off the dreaded E cores. You can also disable E core in the BIOS settings of most PCs, but that’s overkill (unless no other way works for you).
Process Lasso is available here: https://bitsum.com/
Process Lasso will actually show you the type of cores (E cores have the leaf):

Process Lasso reports I have 16 P cores, but since they are hyperthreaded, I effectively have 8. I’ll let you Google it if you really want to blow your mind, should you really want to know about hyperthreading.
If you download, install, and run Process Lasso as an administrator, you can pin specific applications or processes to specific cores. This is called processor affinity and can be seen here, where some tasks are on CPU 0-15 (P cores) and some are on CPU 0-31, which is every core on the PC, P or E, whichever the OS decides to place them on:

As you can see from the above, I used Process Lasso to tie VirtualBox (and VBoxSVC, and VBoxHeadless) to 0-15, meaning only ever run them on P cores. Once you do this, the performance difference of the running VMs is DRASTIC. I created a profile called “P-cores-only”, but you can at least test it by deselecting “E” cores like this:

Hopefully, after pinning the VirtualBox processes to P cores, your VMs now respond and freeze or crash less often. Again, YMMV.
First and foremost, this information is provided without warranty, guarantee of correctness, or applicability to your individual situation. As always with information, YMMV (your mileage may vary). Again, any attempt you make is at your own risk. I am simply trying to help.
OK, what is Big-Little? It’s an Intel technology (also found on recent AMD CPUs) that divides CPU cores into two tiers: Big (performance or “P” cores) and Little (efficiency or “E” cores). E cores are typically used for background tasks or processes that don’t require immediate attention, such as dormant browser tabs.
My regular desktop PC has an Intel i9-13900T CPU, which features eight P cores and 16 E cores. You can see this by checking the CPU specs from your CPU manufacturer:
https://www.intel.com/content/www/us/en/products/sku/230498/intel-core-i913900t-processor-36m-cache-up-to-5-30-ghz/specifications.html
Now, Windows doesn't really tell you which is which, so in Task Manager, you can’t distinguish. But for anything virtualization, E cores ARE SIMPLY ABYSMAL. If a VM is moved to an E core, it pretty much stops responding. The moral of the story is that VMs need to run on P cores.
“That’s great news, Darren, but how does one accomplish this?” I hear you ask. There are ways. Again, do these at your own risk and YMMV. Personally, I use a program called “Process Lasso”. This lets me tag specific EXE files and processes to ONLY run on P cores and keep them off the dreaded E cores. You can also disable E core in the BIOS settings of most PCs, but that’s overkill (unless no other way works for you).
Process Lasso is available here: https://bitsum.com/
Process Lasso will actually show you the type of cores (E cores have the leaf):
Process Lasso reports I have 16 P cores, but since they are hyperthreaded, I effectively have 8. I’ll let you Google it if you really want to blow your mind, should you really want to know about hyperthreading.
If you download, install, and run Process Lasso as an administrator, you can pin specific applications or processes to specific cores. This is called processor affinity and can be seen here, where some tasks are on CPU 0-15 (P cores) and some are on CPU 0-31, which is every core on the PC, P or E, whichever the OS decides to place them on:
As you can see from the above, I used Process Lasso to tie VirtualBox (and VBoxSVC, and VBoxHeadless) to 0-15, meaning only ever run them on P cores. Once you do this, the performance difference of the running VMs is DRASTIC. I created a profile called “P-cores-only”, but you can at least test it by deselecting “E” cores like this:
Hopefully, after pinning the VirtualBox processes to P cores, your VMs now respond and freeze or crash less often. Again, YMMV.