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 )
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
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
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
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:
and if UG mode is supported it looks like:
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.
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.
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.)
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.
FYI, we are building a detection tool in the installer itself.
> 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
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
I just updated to the latest Firmware BIOS for my motherboard and it still fails the test using
the iso tool.
@wila
Yes the problem was I did not enable vt-x in the virtual machine.
It passes now.
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
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
> FYI, we are building a detection tool in the installer itself.
Why not a stand-alone utility?
We may consider this as well, perhaps we could deliver it as a 'Fling'
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
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.
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)
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
Was waiting for this to allow use on Fedora 26 but of course now find my CPU isn't supported Guess it's back version 12 & Fedora 25.