amd64/175780: Crash on KVM boot due to xsave instruction issue

Konstantin Belousov kostikbel at gmail.com
Sat Feb 2 15:02:46 UTC 2013


On Sat, Feb 02, 2013 at 01:04:14PM +0000, Kaloyan Ganchev wrote:
> When trying to boot FreeBSD 9.1 on kvm host  with the following command:
> 
> kvm -cpu core2duo,+xsave -enable-kvm -drive file=freebsd-9.1-qcow2.img -boot d -net nic -net user -nographic -vnc :0  -cdrom ./isos/FreeBSD-9.1-RELEASE-amd64-disc1.iso 
> 
> The kernel return the following error immediately after taking over from the loader:
> 
> panic: CPU0 does not support X87 or SSE : 0
> 
> If I do not expose the xsave cpu flag to the FreeBSD guest the virtual machine boot as expected.
> This problem do not appear in 9.1 i386 and 9.0 amd64 releases.
This is a misconfigured hypervisor, or a bug in the hypervisor.

FreeBSD amd64 assumes that both X87 FPU and SSE2 are present for any
CPU capable of long mode. It is enforced by the Unix amd64 ABI.

Intel documentation states that CPUID leaf 0xd must report the presence of
FPU extensions, and since for the long mode capable CPU, SSE2 and X87 must
be present, we re-check the report. Aparently, the returned CPUID data
is wrong.

> Also I tried several other cpu models instead of the core2duo and it doesn't make a difference, if xsave is exposed to the guest, FreeBSD 9.1 amd64 fails to boot with the error above.
> >How-To-Repeat:
> kvm -cpu core2duo,+xsave -enable-kvm -drive file=freebsd-9.1-qcow2.img -boot d -net nic -net user -nographic -vnc :0  -cdrom ./isos/FreeBSD-9.1-RELEASE-amd64-disc1.iso 
> >Fix:
Talk to KVM developers.

i386 kernel does not support this feature, 9.0 did not have it yet.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-amd64/attachments/20130202/62d1bfc8/attachment.sig>


More information about the freebsd-amd64 mailing list