A few months back I decided to be extremely clever and did this:
1)
On my host compiled its Kernel with all host and client virtualization options (KVM) turned on .
2)
After having compiled the kernel on the host, copied it to the usual "/boot/mygreatkernel" and booted the host using it.
3)
Started all my QEMU/KVM VMs with the parameter "-kernel /boot/mygreatkernel", therefore using the same file that my host was using.
Result:
At the beginning everything working perfectly.
After a week or so I started noticing that the VMs were quite slow and after some more time their poor performance was obvious, with a reboot fixing everything until the whole cycle started again a few days/weeks later.
I then started looking a bit deeper into it and I saw that a lot of time was spent on kernel calls.
I then copied the kernel config file (".config") to the VMs themselves, compiled it in the VMs and put them on the host and since I boot using it (every VM has its own kernel-file) everything is fine.
Any clue why?
I could understand that even if the configuration in the ".config" file is the same the kernel compiled in the VMs is different from the one of the host (Xeon CPU) because of the "-native" CFLAG I'm using, but a deterioration of the performance with time should not happen, or?