Re: Revert "x86/speculation: Simplify indirect_branch_prediction_barrier()" crashes KVM guest

From: David Woodhouse
Date: Thu Feb 15 2018 - 18:29:20 EST


On Fri, 2018-02-16 at 00:12 +0100, Richard Weinberger wrote:
>
> [ÂÂÂ 2.791518] Code: 8b 45 00 49 8b 7d 08 49 83 c5 18 31 d2 31 f6 ff
> d0 49 8b 45 00 48 85 c0 75 e9 eb b1 b9 49 00 00 00 b8 01 00 00 00 ba
> 00 00 00 00 <0f> 30 e9 68 fd ff ff 9c 58 0f 1f 44 00 00 48 89 c5 fa
> 66 0f 1f

 23:ÂÂÂb9 49 00 00 00ÂÂÂÂÂÂÂÂÂÂmovÂÂÂÂ$0x49,%ecx
 28:ÂÂÂb8 01 00 00 00ÂÂÂÂÂÂÂÂÂÂmovÂÂÂÂ$0x1,%eax
 2d:ÂÂÂba 00 00 00 00ÂÂÂÂÂÂÂÂÂÂmovÂÂÂÂ$0x0,%edx
 32:ÂÂÂ0f 30ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂwrmsr Â

The faulting instruction is the wrmsr itself. That shouldn't happen; if
the CPUID bit indicates that the MSR exists, then it should exist.

The reverted patch did use the C __wrmsr() macro which contained a
fixup for this GP# but it was just a side-effect of the "cleanup" â it
wasn't intentional because that really shouldn't happen. That looks
like a qemu bug as first glance.

Attachment: smime.p7s
Description: S/MIME cryptographic signature