I forgot to restore MSR_IA32_FEATURE_CONTROL in the resume path, and MSR_IA32_FEATURE_CONTROL is zero after S3 resume.
This is a bug. Sorry Laszlo. :)
Not restore MSR_IA32_FEATURE_CONTROL during S3 resume does not affect at least Linux guest (tested 4.5). Current QEMU may advise the guest firmware to set bit 20 (for LMCE), bit 2 (for VMX) and bit 0 (lock bit).
- For LMCE, Linux only checks bit 20 and bit 0 at boot time and then keeps using the result even after resume.
On real hardware, LMCE would not be enabled after resume. I'm not sure what would happen, but it wouldn't be good.
Paolo