Highlighted
Immortal
Immortal

@VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs

Hello Workstation product manager
I am shocked to realize that none of my 3 hosts that I used to run Workstation or ESXi qualifies for WS 14.
I was able to find a vmx-file tweak to enable me to try the Beta but the performance was horrible.
Suggestion: publish the best vmx-file hacks that will allow to run WS 14 on unsupported CPUs.
Suggestion: publish a small test tool so that users can check if their hosts will be able to run WS 14.
Suggestion: Do that right now
Regards
Ulli Hankeln

( a former Workstation evangelist and most active user in this community since 2003 )

Do you need support with a recovery problem ? - call me via skype "sanbarrow"
52 Replies
Highlighted
User Moderator
User Moderator

Hi voidp,

Nope, not those strings.

VMX is just VT-x and SVM is AMD's variant.

It is also not EPT, but that is a requirement as well.

If I am not mistaken you also cannot see the flags you need to see in Linux cpuinfo although you can see the processor identification and match that with a list of processors known to support this feature. But that list is not publicly available from intel. The system requirements from VMware give a list, but not everybody knows how-to match that either.

It's pretty darn technical.

On freeBSD you can verify it from the command line like this:

# sudo dmesg | grep UG

VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID

AFAIK, this won't show up like that on Linux. The UG= Unrestricted Guest

There might be some CPU info tool on windows, but the problem is that in order to get the info the code that queries the required flags has to run in ring 0.

It's not that easy to run your code in ring 0 when you want it to run on every windows computer.

The easiest way to see this at the moment is to use the tip that bluefirestorm gave here Re: Read Me if you have a Intel Xeon CPU

Quote:

The Intel ARK site does not have an option in the Advanced Search to look for processors "Unrestricted Guest" feature.

But from what I can see in the Intel Developer Guide, the Unrestricted Guest feature is identified by MSR 485 bit 5 set to 1.

2017-07-25T04:58:26.927+02:00| vmx| I125: Common: MSR       0x485 =             0x401c5 

So in this case, the bit 5 is 0 so the Unrestricted Guest feature is not available.

This past weekend I've been digging into intel's development guides etc..

My first attempt to get the info was writing this script that you can extract the last two digits from the vmware.log file:

cat vmware.log | grep "MSR\s*0x485" | awk '{print $NF}' | sed 's/^.*\(.\{2\}\)$/\1/'

Which shows the last 2 characters of the hex code for the model specific register.

But that requires you to know how to read that bit 5 is set... AND you must have VMware Workstation installed already.

So way too technical and limited because it only works if you are an existing workstation user.

So then I decided to learn x64 assembler -finally a good excuse- and wrote the code to get the info. Only to find out that in order to read msr 485  you need to use command rdmsr which...

... only is allowed to run at ring 0.

I thought caveat emptor as switching from ring 3 to ring 0 was too complicated for my fun project.

However now I'm looking into creating a bootable CD iso with a tiny kernel and am part way there.

My only problem is that I have to work and not play, so.. need a bit of time before I can get back to this hobby project that spits out if unrestricted guest is supported or not without having to install Workstation 14.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
Highlighted
Contributor
Contributor

Here is a printout from SysInternal's CoreInfo reports:

IT appears my CPU should work with WS14 but it fails?

Intel(R) Core(TM)2 Quad CPU    Q9650  @ 3.00GHz

Intel64 Family 6 Model 23 Stepping 10, GenuineIntel

Microcode signature: 00000A0C

HTT           *    Hyperthreading enabled

HYPERVISOR    -    Hypervisor is present

VMX           *    Supports Intel hardware-assisted virtualization

SVM           -    Supports AMD hardware-assisted virtualization

X64           *    Supports 64-bit mode

SMX           *    Supports Intel trusted execution

SKINIT        -    Supports AMD SKINIT

NX            *    Supports no-execute page protection

SMEP          -    Supports Supervisor Mode Execution Prevention

SMAP          -    Supports Supervisor Mode Access Prevention

PAGE1GB       -    Supports 1 GB large pages

PAE           *    Supports > 32-bit physical addresses

PAT           *    Supports Page Attribute Table

PSE           *    Supports 4 MB pages

PSE36         *    Supports > 32-bit address 4 MB pages

PGE           *    Supports global bit in page tables

SS            *    Supports bus snooping for cache operations

VME           *    Supports Virtual-8086 mode

RDWRFSGSBASE    -    Supports direct GS/FS base access

FPU           *    Implements i387 floating point instructions

MMX           *    Supports MMX instruction set

MMXEXT        -    Implements AMD MMX extensions

3DNOW         -    Supports 3DNow! instructions

3DNOWEXT      -    Supports 3DNow! extension instructions

SSE           *    Supports Streaming SIMD Extensions

SSE2          *    Supports Streaming SIMD Extensions 2

SSE3          *    Supports Streaming SIMD Extensions 3

SSSE3         *    Supports Supplemental SIMD Extensions 3

SSE4a         -    Supports Streaming SIMDR Extensions 4a

SSE4.1        *    Supports Streaming SIMD Extensions 4.1

SSE4.2        -    Supports Streaming SIMD Extensions 4.2

AES           -    Supports AES extensions

AVX           -    Supports AVX intruction extensions

FMA           -    Supports FMA extensions using YMM state

MSR           *    Implements RDMSR/WRMSR instructions

MTRR          *    Supports Memory Type Range Registers

XSAVE         *    Supports XSAVE/XRSTOR instructions

OSXSAVE       *    Supports XSETBV/XGETBV instructions

RDRAND        -    Supports RDRAND instruction

RDSEED        -    Supports RDSEED instruction

CMOV          *    Supports CMOVcc instruction

CLFSH         *    Supports CLFLUSH instruction

CX8           *    Supports compare and exchange 8-byte instructions

CX16          *    Supports CMPXCHG16B instruction

BMI1          -    Supports bit manipulation extensions 1

BMI2          -    Supports bit manipulation extensions 2

ADX           -    Supports ADCX/ADOX instructions

DCA           -    Supports prefetch from memory-mapped device

F16C          -    Supports half-precision instruction

FXSR          *    Supports FXSAVE/FXSTOR instructions

FFXSR         -    Supports optimized FXSAVE/FSRSTOR instruction

MONITOR       *    Supports MONITOR and MWAIT instructions

MOVBE         -    Supports MOVBE instruction

ERMSB         -    Supports Enhanced REP MOVSB/STOSB

PCLMULDQ      -    Supports PCLMULDQ instruction

POPCNT        -    Supports POPCNT instruction

LZCNT         -    Supports LZCNT instruction

SEP           *    Supports fast system call instructions

LAHF-SAHF     *    Supports LAHF/SAHF instructions in 64-bit mode

HLE           -    Supports Hardware Lock Elision instructions

RTM           -    Supports Restricted Transactional Memory instructions

DE            *    Supports I/O breakpoints including CR4.DE

DTES64        *    Can write history of 64-bit branch addresses

DS            *    Implements memory-resident debug buffer

DS-CPL        *    Supports Debug Store feature with CPL

PCID          -    Supports PCIDs and settable CR4.PCIDE

INVPCID       -    Supports INVPCID instruction

PDCM          *    Supports Performance Capabilities MSR

RDTSCP        -    Supports RDTSCP instruction

TSC           *    Supports RDTSC instruction

TSC-DEADLINE    -    Local APIC supports one-shot deadline timer

TSC-INVARIANT    -    TSC runs at constant rate

xTPR          *    Supports disabling task priority messages

EIST          *    Supports Enhanced Intel Speedstep

ACPI          *    Implements MSR for power management

TM            *    Implements thermal monitor circuitry

TM2           *    Implements Thermal Monitor 2 control

APIC          *    Implements software-accessible local APIC

x2APIC        -    Supports x2APIC

CNXT-ID       -    L1 data cache mode adaptive or BIOS

MCE           *    Supports Machine Check, INT18 and CR4.MCE

MCA           *    Implements Machine Check Architecture

PBE           *    Supports use of FERR#/PBE# pin

PSN           -    Implements 96-bit processor serial number

PREFETCHW     *    Supports PREFETCHW instruction

Maximum implemented CPUID leaves: 0000000D (Basic), 80000008 (Extended).

Logical to Physical Processor Map:

*---  Physical Processor 0

-*--  Physical Processor 1

--*-  Physical Processor 2

---*  Physical Processor 3

Logical Processor to Socket Map:

****  Socket 0

Logical Processor to NUMA Node Map:

****  NUMA Node 0

No NUMA nodes.

Logical Processor to Cache Map:

*---  Data Cache          0, Level 1,   32 KB, Assoc   8, LineSize  64

*---  Instruction Cache   0, Level 1,   32 KB, Assoc   8, LineSize  64

**--  Unified Cache       0, Level 2,    6 MB, Assoc  24, LineSize  64

-*--  Data Cache          1, Level 1,   32 KB, Assoc   8, LineSize  64

-*--  Instruction Cache   1, Level 1,   32 KB, Assoc   8, LineSize  64

--*-  Data Cache          2, Level 1,   32 KB, Assoc   8, LineSize  64

--*-  Instruction Cache   2, Level 1,   32 KB, Assoc   8, LineSize  64

--**  Unified Cache       1, Level 2,    6 MB, Assoc  24, LineSize  64

---*  Data Cache          3, Level 1,   32 KB, Assoc   8, LineSize  64

---*  Instruction Cache   3, Level 1,   32 KB, Assoc   8, LineSize  64

Logical Processor to Group Map:

****  Group 0

0 Kudos
Highlighted
User Moderator
User Moderator

Hi VM Michael,


See my -long- answer to voidp.

In short: that utility doesn't show if your CPU supports Unrestricted Guest, it shows a variety of flags, just not the one flag you want to see.

Your CPU is from 2008 and I think UG is not supported by it.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
Highlighted
User Moderator
User Moderator

Hi,

As promised a cd iso image that you can use to test if your CPU supports VMX Unrestricted Guest mode (UG mode).

I have run my tests in a virtual machine (if your host supports UG mode then adding hypervisor mode to the vCPU will make it detect this correctly)

But first: mad props to Philip Opperman and his blog series about writing a minimal kernel (https://os.phil-opp.com/multiboot-kernel/  ) without that blog this tool would not have existed.

This is version 0.2, if I have the time I will make it nicer and add more debug info.

When you run in a virtual machine you will first get a popup that the CPU was halted.

This is by intent, don't want the CPU to run wild after testing, besides that the code is extremely frugal.

Just click the popup away and you'll see the results.

The test should be run on physical hardware only for now. The test is not reliable when run from a VM unless we figure out how to get the actual MSR 0x485 data show up in the VM.

Screenshots look like:

pastedImage_2.png

and if UG  mode is supported it looks like:

pastedImage_3.png

cheers!

--

Wil

EDIT: PLEASE note that this is a very preliminary release. Ulli just contacted me privately that he has a false positive (eg. a host that does not support Unrestricted Guest mode, but the VM says it does, we are investigating on how this is possible)

EDIT2: I could reproduce Ulli's report here on another machine running WS 12.x and in the VM it showed OKAY for a CPU that certainly does not support Unrestricted Guest Mode.

If I then actually BURN a CD with the .iso and boot the physical host from the CD then it reports the FAIL as was expected.

pastedImage_1.png

It seems that VMware's hypervisor implementation is too smart to run the test via a VM and get a reliable result as MSR x485 in the VM is reporting a different value when run from a VM in contrast to when run on metal. Hopefully there is a setting to make the VM method reliable as that would make life a lot easier.

PS: Updated the .iso to version 0.2, the only difference is me clearing the register before the test (which should not be required)

For the people who want to know, this is the main testing code (after switching to 64 bits long mode etc.. as in the referenced article)

It's not all that exciting..

mov rax, 0x0000000000000000 ; clear rax
mov rcx,0x485
rdmsr
bt rax,5
jc UnrestrictedGuestSupported
jmp UnrestrictedGuestNotSupported

UnrestrictedGuestSupported:

mov rax, 0x2f592f412f4b2f4f ; OKAY
mov qword [0xb8048], rax
hlt

UnrestrictedGuestNotSupported:

mov rax, 0x4f4c4f494f414f46 ; FAIL
mov qword [0xb8048], rax
hlt

EDIT3: Updated the text above to make clear that this has to be run on metal as the VM gets the data from a virtualized MSR which might be different from the actual register.

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
Highlighted
Hot Shot
Hot Shot

Thank you for the ISO. It has now saved me the need to download a FreeBSD ISO to test for Unrestricted Guest.

I ran the ISO in a Workstation 12.5.7 VM on an Intel Core i5 i5-2430M CPU host with an OKAY result.

Attached is a copy of the VM I created for the test. (Hardware compatibility is set for Workstation 9.x.)

0 Kudos
Highlighted
Contributor
Contributor

I just tried running the iso and I receive a 'FAIL' on my Skylake 8-core i7-6700k.

Would this be a motherboard issue? This processor is only a couple of years old.

0 Kudos
Highlighted
Community Manager
Community Manager

FYI, we are building a detection tool in the installer itself.

- Michael Roy - Product Line Manager: Fusion & Workstation
0 Kudos
Highlighted
Immortal
Immortal

> FYI, we are building a detection tool in the installer itself.
That should be considered as plan B as it suggests a workflow like this:
1. uninstall previous version
2. reboot and clean up the items left by the uninstaller
3. run the new installer

Do you need support with a recovery problem ? - call me via skype "sanbarrow"
Highlighted
User Moderator
User Moderator

Hi,

Did you run it as a VM? If so, can you attach a vmware.log file please?

if you ran it as VM, did you add virtualisation support to the VM?

For the record, your CPU should be fine, it is from 2015 so I would not expect this to be an issue.

The verifying logic at this moment is a tad simple, if you get an "OKAY" you should be fine.

If you get a "FAIL" then it just indicates that my code was not able to read that MSR from earlier on, there can be several reasons for that.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
0 Kudos
Highlighted
Contributor
Contributor

I just updated to the latest Firmware BIOS for my motherboard and it still fails the test using

the iso tool.

0 Kudos
Highlighted
Contributor
Contributor

@wila

Yes the problem was I did not enable vt-x in the virtual machine.

It passes now.

Highlighted
User Moderator
User Moderator

Good to hear Mike, I'm sure that will help as well.

Meanwhile I will try to improve that .iso so that there are alternative ways to determine if the CPU supports VMX Unrestricted Guest mode.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
0 Kudos
Highlighted
User Moderator
User Moderator

Thanks, good to hear that the issue is resolved.

The .iso should work, but it could use a description that is a bit more step by step and some additional hints when it reports a "FAIL" if you forgot to add virtualisation support to the VM.

The problem is that I am writing this in assembler straight to the VGA text buffer, so have to write a bit more scaffolding code.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
0 Kudos
Highlighted
Enthusiast
Enthusiast

> FYI, we are building a detection tool in the installer itself.

Why not a stand-alone utility?

Highlighted
Community Manager
Community Manager

We may consider this as well, perhaps we could deliver it as a 'Fling'

- Michael Roy - Product Line Manager: Fusion & Workstation
Highlighted
Expert
Expert

Thank you for posting this concern Ulli.   I have a somewhat related question for the product manager.   What support could I expect to get after forking over another $150 for a product which does work on Windows on my machine but does not work on Linux on the same machine i.e. a dual boot setup?   I am retired - I would not be using OPM.  What information about my CPU  or any other hardware/software can I provide?    Debian Linux with a 4.12 kernel runs Workstation 12.5.7 over a broad range of clients including virtual ESXi clients.    Workstation 14 runs the same identical clients on Windows Server 2016 Standard.   

Can someone working for VMware Inc state that if I buy the product and open up a support question on getting WS 14 to work on Linux and VMware engineers cannot get it to work after a month of free support (I believe the product still comes with that) that you will either refund me or much better provide me a key without cost to me.   This is exactly what happened several years ago -  I got it for free and then was able to install it on Linux without support from VMware - support from the communiy.  

If somebody from the company reads this please don't blow me off or dis me by not replying.   I have been using Workstation since ver 1.0

TIA

Marty Felker

0 Kudos
Highlighted
Contributor
Contributor

So, based off what I am reading here.  My solution to the following error is to uninstall the new version of workstation I just purchased and install an older version?

Here is my processor information:

Name:  Intel Xeon X5365

Codename:  Clovertown

Specification:  Intel(R) Xeon(R) CPU  X5365  @ 3.00GHz

Instructions sets:  MMX, SSE, SSE2, SSE3, SSSE3, EM64T, VT-x

2017-10-04T23:25:25.957-04:00| vmx| I125: Module 'CPUIDEarly' power on failed.

2017-10-04T23:25:25.957-04:00| vmx| I125: VMX_PowerOn: ModuleTable_PowerOn = 0

2017-10-04T23:25:25.957-04:00| vmx| I125: Vix: [3672 mainDispatch.c:4234]: VMAutomation_ReportPowerOpFinished: statevar=1, newAppState=1873, success=1 additionalError=0

2017-10-04T23:25:25.957-04:00| vmx| I125: Msg_Post: Error

2017-10-04T23:25:25.957-04:00| vmx| I125: [msg.cpuid.legacyCPU.nohwmmu.intel] This host does not support "Intel EPT" hardware assisted MMU virtualization.

2017-10-04T23:25:25.957-04:00| vmx| I125: [msg.moduletable.powerOnFailed] Module 'CPUIDEarly' power on failed.

2017-10-04T23:25:25.957-04:00| vmx| I125: [msg.vmx.poweron.failed] Failed to start the virtual machine.

0 Kudos
Highlighted
Expert
Expert

I believe your entitled to one month free support.   Go to your "My VMware" page and see if you can file a support request.   They do have some sharp engineers on the support team.   I'm very tempted to do that myself, but my remedy, if they can't get it to work on Linux, would be to ask for a refund while just retaining the "activation: key which is you really get for a $150 upgrade (execeptmaybe the one month of support - for all I know they no longer provide it)

0 Kudos
Highlighted
User Moderator
User Moderator

Hi,

Yes, the X53nn series CPUs are not supported on Workstation 14.

You should be able to get a refund when you contact support.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
0 Kudos
Highlighted
Enthusiast
Enthusiast

Was waiting for this to allow use on Fedora 26 but of course now find my CPU isn't supported Smiley Sad Guess it's back version 12 & Fedora 25.

0 Kudos