Re: Solaris 10 doesn't work under KVM

Joerg Roedel
2007-02-12T17:58:18Z

On Sat, Feb 10, 2007 at 02:34:43PM +0100, Waba wrote:
> It took me a while, but I figured it out... nearly!

Great. We get closer to the real problem.

> Further investigating, I tricked ls(1) into using the optimised libc
> through LD_LIBRARY_PATH and obtained a core. mdb(1) told me that the
> culprit was hiding at libc`memset+0x74. And finally, dis(1) revealed
> that the faulty instruction is "movups (%esp), %xmm0", a SSE feature.
> The %xmm0 register is apparently for storage purposes only, as the only
> instructions used to access it are movups, movntps and movaps.

This differs a bit from my investigations. I got the #UD in SVM always
on the same RIP (which is unlikely when it is triggered in usermode). I
assume the error comes from the lazy FPU switching code inside the
kernel, triggered by the SSE instruction. But it is weird that this #UD
in the kernel results in a SIGILL to the userspace process, but maybe
Solaris does such things.
It is possible that the Kernel and the Userspace on Solaris have
different assumptions about the CPU capabilities?

> At this point I hope that it makes a lot of sense to you, because I
> have no idea why it works fine on Avi's Opteron, etc.

Yes, thats another open question...

Joerg

--
Joerg Roedel
Operating System Research Center
AMD Saxony LLC & Co. KG