A CPU in a virtual machine is only virtual so I would assume that the microcode of the manufacturer does not need to be loaded. The same is probably valid for GPUs.

Is this correct? Is there any risk or disadvantage of using or not using it in a KVM/QEMU VM?

I am talking of the microcode update that takes place early in the boot process of the Linux VM.

Both host and VM CPUs are the same. The host does load the latest microcode upon its boot.

A reply with references would be appreciated as I have done an educated guess myself already.

2 Answers 2


I’m not sure there is a reference in the documentation, but Paolo Bonzini (the KVM maintainer) said this on the qemu-devel mailing list:

The guest has no microcode of it's own, but you need to update the microcode in the host. You also need to update the kernel, QEMU and libvirt if you are using it.

and then, specifically with regards to updating microcode inside the guest,

No, that has no effect.


The CPU is not visualised. Well not much. Well a lot. Well it depends on your point of view. In user mode it just uses the host CPU. In kernel mode it can be emulated or visualised (depending on virtualisation software CPU model etc). As it uses the host CPU the host needs to update microcode.

I would hope that the guest has no access to this. Maybe it is told that it can not do it. Or maybe it is told that it succeeded. But it must not be allowed to change it, as this would affect the host and other guests.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.