VMware Cloud Community
nik00079
Contributor
Contributor

Vmotion Paxville MP to Clovertown (PowerEdge 6850 <==> 2950)

I am trying to test vmotion between a dell poweredge 6850 and a 2950.

The 6850 has 7000 series xeons and the 2950 has 5300 series.

When trying to vmotion I get an incompatible cpu message "problem detected at CPUID level 0x1 register 'eax'".

How can I come up with an appropriate mask to allow me to test vmotioning?

Thanks,

Nick

0 Kudos
7 Replies
masaki
Virtuoso
Virtuoso

0 Kudos
masaki
Virtuoso
Virtuoso

0 Kudos
nik00079
Contributor
Contributor

OK,

After running the CPUID iso it looks like the Paxville CPU supports SSE3 and hyperthreading but the Clovertown supports SSE4 and no hyperthreading, here is the output from the CPUID iso.

Poweredge 2950 (Xeon E5345)

Bin 0 - 0x0004e3bd 0xbfebfbff 0x00000001 0x20100000

Poweredge 6850 (Xeon 7000)

Bin 0 - 0x000065bd 0xbfebfbff 0x00000001 0x20100000

Are there any other features that differ besides SSE and hyperthreading?

If not would it be safe to vmotion from the 6850 to the 2950?

If there is a VM running and executing SSE3 code, can that same code continue to be executed on the SSE4 cpu?

The SSE issue can be overridden by masking the appropriate ecx bits, but how can I find the right mask for the eax register?

0 Kudos
masaki
Virtuoso
Virtuoso

It does not make sense.

According to this:

http://grafi.ii.pw.edu.pl/gbm/x86/cpuid.html

eax register should be CPU id that is obviously different.

Did you try the " hide the NX flag" option?

Go in a vm choose Edit Settings -> Options -> Advanced and check it.

nik00079
Contributor
Contributor

That's right I see that in intel's CPUID doc at:

http://download.intel.com/design/processor/applnots/24161831.pdf

Basically by loading values of 0||1||2||3 in EAX you get the CPUID in EAX, EBX, ECX, and EDX.

Hiding the NX flag will have no effect because both processors support that.

The problem looks like the older proc does not support SSE4, and even if I mask the right bits user apps can still run CPUID directly and try to run SSE4 instructions.

This should not be a problem if vmotioning from a SSE3 capable to a SSE4 server, but can be a problem if vmotioning from a SSE4 capable to a SSE3 server.

Thanks

0 Kudos
masaki
Virtuoso
Virtuoso

Yes you're right but this is Masking not a Miracle.

There should be a way to translate SSE4 instructions in SSE3 instructions on the fly with a little trouble.

I call it a miracle

😆

Message was edited by:

masaki

0 Kudos
nik00079
Contributor
Contributor

Using masks

eax:

\-- -


-
-
-
XX -


-


ecx:

\-- -


-
-0 -


--0- -


-


Vmotion works, but sometimes right after the operation the VM freezes.

In my testing it seems if the VM is idle or nearly idle no problem.

But doing it while copying a file or other task and problems occur.

I will be awaiting that miracle, untill I get another quad-core server.

0 Kudos