shithub: vmxsmp

ref: e62b1e38428082d5ad17a51bdff25b16c1db3caf
dir: /README/

View raw version
-> In devvmx.c we add two features, setting the tsc offset and VMX PREEMPT. Therefore,

**Running this requires recompiling the kernel with the provided devvmx.c file**

-> Before entering the loop we record the timer that is the first to expire and use VMX PREEMPT to trigger a VM exit after that time. 

-> All interrupts are treated as IPIs

-> OpenBSD is very slow with SMP, faster with nvcpu = 1. I do not understand why. 

-> Plan9 is slow if you don't add -n /net/ether0. I understand why but can't be bothered to fix it right now. 

-> Linux seems to run just fine. 

-> The architecture is a major overhaul from the previous vmx which relied on entering i8042 legacy mode. In our case we have to deal with several timers. Using VMX PREEMPT appeared to be the simplest way to manage all this complexity. 

-> Code is very messy right now. AI was used to generate the very boring boilerplate e.g. APIC and MP tables, and IO port handling. Those parts can be probably dramatically simplified. 

-> Right now it will crash if you want to use more than e.g. 2G of RAM, this is trivial to fix but it is not a priority at this stage.