Anthony Liguori wrote:Why not introduce a new exit type for MSR reads/writes that aren't
handled by the kernel? You just need a bit on the return that
indicates whether to GPF because of an invalid MSR access.
Right now everything in the vcpu is emulated in the kernel. Everything
else is emulated either in the kernel (irqchip) or in userspace. This
makes things easier to understand, and is more future friendly if more
cpu features become virtualized by hardware.
While these are not compelling reasons, they at least lean the balance
in favour of a kernel implementation.