1 2 3 4 Previous Next 52 Replies Latest reply on Feb 28, 2019 7:58 AM by wila Go to original post
      • 15. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
        continuum Guru
        Community WarriorsvExpertUser Moderators

        > Common guys, this is ... let's stick with "making me speechless", because the words I want to say are not fit for consumption at the forum.
        What about this : this approach to alienate your users will definetely work.
        That is a positive way of expressing the issue

        • 17. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
          continuum Guru
          vExpertUser ModeratorsCommunity Warriors

          > Use WS12, in WS14 nothing interested
          Sure - that is the pragmatic approach and so I use the last known good version 12.01
          The idealistic intention of this post is to persuade product management that the decision to drop support for old CPUs (binary translation) was a poor one and that it would be good to review it.
          Ulli

          • 18. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
            wila Guru
            vExpertCommunity WarriorsUser Moderators

            Yep, would love to see proper Binary Translation support to come back as well as support for those older processors.

            VMware absolutely championed that particular area.

             

            BT also helped for running nested guests. Some 32 bit guests that I have now have to require me to add virtualisation support to the outer guest.

            Even after that it just doesn't run as well as it did using Binary Translation.

            From my point of view they made a big mistake by removing that.

             

            Then they blundered on top of that by not updating the processor requirements in many places.

             

            Stating "Just use WS12.x" is not paying attention to that WS12.x just went into maintenance release mode and has to be happy with security patches (hopefully all of them until EOL next year)

             

            WS12.1 has a lot of security issues I'm afraid.

            --

            Wil

            | Author of Vimalin. The virtual machine Backup app for VMware Desktop Products
            | Vimalin : Automated backups for VMware Fusion and VMware Workstation Professional
            | More info at https://www.vimalin.com
            | Twitter @wilva
            | VMware Wiki at http://www.vi-toolkit.com
            • 19. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
              voidp Enthusiast

              > Suggestion: publish a small test tool so that users can check if their hosts will be able to run WS 14.

               

              Are there any utilities that can detect the "VMX Unrestricted Guest" feature?

               

              SysInternal's CoreInfo reports:

               

              VMX : Supports Intel hardware-assisted virtualization

              SVM : Supports AMD   hardware-assisted virtualization

               

              • 20. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
                wila Guru
                Community WarriorsvExpertUser Moderators

                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 Desktop Products
                | Vimalin : Automated backups for VMware Fusion and VMware Workstation Professional
                | More info at https://www.vimalin.com
                | Twitter @wilva
                | VMware Wiki at http://www.vi-toolkit.com
                1 person found this helpful
                • 21. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
                  VM Michael Novice

                  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

                  • 22. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
                    wila Guru
                    User ModeratorsvExpertCommunity Warriors

                    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 Desktop Products
                    | Vimalin : Automated backups for VMware Fusion and VMware Workstation Professional
                    | More info at https://www.vimalin.com
                    | Twitter @wilva
                    | VMware Wiki at http://www.vi-toolkit.com
                    • 23. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
                      wila Guru
                      User ModeratorsvExpertCommunity Warriors

                      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.

                      | Author of Vimalin. The virtual machine Backup app for VMware Desktop Products
                      | Vimalin : Automated backups for VMware Fusion and VMware Workstation Professional
                      | More info at https://www.vimalin.com
                      | Twitter @wilva
                      | VMware Wiki at http://www.vi-toolkit.com
                      1 person found this helpful
                      • 24. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
                        Scillonian 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.)

                        • 25. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
                          goldeneye*007 Enthusiast

                          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.

                          • 27. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
                            continuum Guru
                            User ModeratorsvExpertCommunity Warriors

                            > 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

                            1 person found this helpful
                            • 28. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
                              wila Guru
                              Community WarriorsUser ModeratorsvExpert

                              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 Desktop Products
                              | Vimalin : Automated backups for VMware Fusion and VMware Workstation Professional
                              | More info at https://www.vimalin.com
                              | Twitter @wilva
                              | VMware Wiki at http://www.vi-toolkit.com
                              • 29. Re: @VMware Workstation Product manager : please publish the necessary vmx-file hacks that are required to run WS 14 on unsupported CPUs
                                goldeneye*007 Enthusiast

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

                                the iso tool.