VMware Communities > VMTN > Desktop Products > VMware Workstation > Discussions

This Question is Possibly Answered

1 "correct" answer available (10 pts) 1 "helpful" answer available (6 pts)
8 Replies Last post: Mar 18, 2008 1:21 PM by jmattson
Reply

hardware xd bit disables 64bit support

Mar 16, 2008 10:56 PM

Click to view caldwelljt's profile Novice caldwelljt 7 posts since
Mar 16, 2008

I've troubleshot this till i'm blue in the face and need some advice. I would like to have BOTH hyper-v and VMware workstation 6 running on my intel dual-core system and BOTH capable of running 64-bit VMs. Hyper-V requires BOTH VT support and XD bit (aka NX bit) support to be enabled (i'm not sure why they need XD/NX support). However, whenever I enable the XD support from within the bios, my PC is no longer able to run 64-bit VMs within VMware.

I am running windows server 2008 / 64-bit with hyper-V installed. I am attempting to run VMware workstation 6.0.3 on the host's O/S parallel to hyper-v.

I have used the tool "VMware-guest64check-6.0.0-45731" to establish the following:

  1. Disable VT and XD bit support in bios
    • No Hyper-V
    • guest64check fails
  2. Enabling VT but NOT XD bit support in bios
    • No Hyper-V
    • guest64check succeeds (and 64bit guests work in VMware)
  3. Enabling VT and XD bit support in bios (and setting EAP to optout (default) )
    • Hyper-V works
    • guest64check fails
  4. Enable VT and XD bit support in bios (and setting EAP to optout (with "VMware-guest64check-6.0.0-45731" listed as an exception) )
    • Hyper-V works
    • guest64check fails
  5. Enabling VT and XD bit support in bios (and setting EAP to optin)
    • Hyper-V works
    • guest64check fails

I'm at a loss for what to do next. Anyone have any suggestions? It appears as if something about how the hardware is perceived (and not represented by the host's OS) is not desirable to VMware when the XD bit is enabled.

Any advice would be appreciated.

Jon

Reply Re: hardware xd bit disables 64bit support Mar 17, 2008 1:01 PM
Click to view jmattson's profile Master jmattson 929 posts since
Mar 29, 2006
VMware
That's very odd. XD support is enabled by default on most platforms, and it should not have any effect on 64-bit guest support. Can you post a vmware.log file for a failing 64-bit VM?
Reply Re: hardware xd bit disables 64bit support Mar 17, 2008 8:06 PM
in response to: jmattson
Click to view caldwelljt's profile Novice caldwelljt 7 posts since
Mar 16, 2008
There is not a failure in the log that is immediately apparent to me. I have, however, attached two screens that show the VM powering on (and complaining) and a screen shots error from windows 2008 64-bit trying to start installation.

This same test works fine if i disable XD bit in the bios (and, of course, disabling XD disables Hyper-V). Hope this helps.

Message was edited by: caldwelljt (sorry, it's late and i'm making typos)
Reply Re: hardware xd bit disables 64bit support Mar 17, 2008 9:49 PM
in response to: caldwelljt
Click to view jmattson's profile Master jmattson 929 posts since
Mar 29, 2006
VMware
VT capability is reported by bit 5 of ECX in CPUID leaf 1. Normally, for this processor, that bit would be on. However, according to your log file:

hostCPUID level 00000001, 0: 0x000006fb 0x00020800 0x80006381 0x37cbfbff

ECX is the third entry, and bit 5 (0x20) is off. All Intel processors with this family/model/stepping (family 6, model 15, stepping 11) report that bit as on.

Since this does not look like any shipping Intel processor, I would guess that this is a Hyper-V virtual CPU. It appears that you are trying to run VMware Workstation in a Hyper-V virtual machine, but the Hyper-V virtual CPU does not support VT.

The XD support is a red herring. By disabling XD, you are disabling Hyper-V, which allows VMware Workstation to run on the physical machine. The physical CPU does support VT. If you were to disable Hyper-V by some other means, you should find that you can enable XD and run 64-bit VMs under VMware Workstation.

What you want to do is to run VMware Workstation as a sibling of Hyper-V rather than as a child of Hyper-V. To do that, you may have to get help from someone more familiar with Hyper-V.

BTW, the explanatory message from the log is:
|msg.monitorInit.vmm64.initHost.IntelNoVT| This CPU does not support VT.
In fact, the CPU in question (i.e. the Hyper-V virtual CPU) really does not support VT.
Reply Re: hardware xd bit disables 64bit support Mar 18, 2008 2:00 AM
in response to: jmattson
Click to view caldwelljt's profile Novice caldwelljt 7 posts since
Mar 16, 2008

Excellent feedback, just what I needed to get me moving again. I will do some research on hyper-v and find out what seems to be up.

From your feedback, perhaps even the console itself is itself running (or subjugating) itself to hyper-v (al la somewhat like how ESX server bootstraps then subjugates the console's linux into a VM at boot time).

I'll poke around and report back in due time, I expect I'll end up surfing some hyper-v related articles before making any further headway to a solution.

-Jon

p.s. Virtual technology has me getting back into the techno-realm my PM (project management) hat has pulled me out of in recent years. I'm finding it a challenge to catch up. I'm finding the breadth of companies/solutions making forays into the market quite daunting. Such as this wikipedia Comparison of Virtual Machines (as well as associated "virtual technology".) I'm staggered, literally, by how much there is to know/learn, and am wondering (albeit somewhat excitedly) about what this is doing for our industry.

I have a side question, do you (or anyone else) have any good blog recommendations for some quasi virtual reading that will reach back over into areas such as business justification and PM processes around VMware and the virtual marketplace in general? I poked around the blog list on the right, but none seemed to perk my immediate interest (they seem irregular and/or sporadic).

Cheers!

Reply Re: hardware xd bit disables 64bit support Mar 18, 2008 3:08 AM
in response to: caldwelljt
Click to view caldwelljt's profile Novice caldwelljt 7 posts since
Mar 16, 2008

One more step in the right direction, Virtual PC Guy (Ben Armstrong) has a blog entry detailing the Hyper-V technology which seems to indicate the Windows Server 2008's hypervisor is also known as both the "Root Partition" and as the "Parent Partition".

A blurb from another term "Guest Operating System" also states the following which seemed enlightening.

This is the operating system / runtime environment that is present inside a partition. Historically with Virtual Server / Virtual PC we would talk about a "host operating system" and a "guest operating system" where the host ran on the physical hardware and the guest ran on the host. With Hyper-V *all operating systems on the physical computer are running on top of the hypervisor *so the correct equivalent terms are actually "parent guest operating system" and "child guest operating system". Having said that, most people (apart from architectural die hards) find these terms confusing and instead use "physical operating system" and "guest operating system" to refer to parent and child guest operating systems respectively.

I have posted a follow-up, and am cross-posting a link to an MSDN forum post that deals with this (no good information is over here at the time of this posting, just my follow up comments).

A re-post of my comment/theory is over there:

In short, It looks like what is causing the problem might be that Hyper-V is a hyper-visor, and as such the "root partition" AKA "parent partition" is, in some part, virtualized (or at least restricted).
I'm currently looking for a way for the parent partition to either bypass the hypervisor or some way to tell the hypervisor that the parent partition needs VT support (or at least just 64-bit guest support, which in theory doesn't require VT support).
It might be that either the hypervisor or VMware workstation needs to modify the reported CPU features so that either gains access to the functionality or does not attempt to use functionality that conflicts with the hypervisor.
I'm no expert in this area, so please forgive me if my terminology or thought process is off-base, if you have any feedback on what the hyper-visor is doing to the parent partition it would be very much appreciated.

Hope this sounds reasonable, I'm at a loss where to delve deeper into this issue and am monitoring the MSDN post and I have sent a couple e-mails to contacts at Microsoft to receive suggestions.

Cheers!
-Jon

Reply Re: hardware xd bit disables 64bit support Mar 18, 2008 9:30 AM
in response to: caldwelljt
Click to view jmattson's profile Master jmattson 929 posts since
Mar 29, 2006
VMware
VT introduces the concepts of "root mode" execution and "non-root mode" execution. The hypervisor executes in root mode, and the guests execute in non-root mode. In non-root mode, all VT instructions trap out to the hypervisor and have to be emulated. If Hyper-V does not report the VT capability in the virtual machine, it probably does not support the emulation of VT instructions. There is nothing that VMware Workstation can do to bypass Hyper-V and access the physical hardware directly.

Similarly, if you ran Hyper-V inside VMware Workstation, it would have to make do without VT instructions, because we don't emulate them either.
Reply Re: hardware xd bit disables 64bit support Mar 18, 2008 11:37 AM
in response to: jmattson
Click to view caldwelljt's profile Novice caldwelljt 7 posts since
Mar 16, 2008

Jmattson: thanks for the clarification. Can you point me to a place that I can read up on the VT technology in general? Also, Assuming Windows offered a method to "bypass" the hypevisor, would that make sense? (I would see this as running the hypervisor in parallel with the Host O/S where VMWare is installed and running. (I should clarify that I am not attempting to run VMware workstation withing a VM, unless the host O/S is itself a guest and thus there is no way to have what I am wanting).

Also, also... What, in theory, do I need to do to run 64-bit guests.. I was under the impression that VMware workstation (and server and ESX even) supported 64bit guests before VT even existed). As a matter of fact, I have an older 64bit AMD processor that runs 64-bit guests yet has no VT support. This, in my case, would likely suffice for the type of testing I need.

Thanks again for the continued discussion. I'm finding this very valuable, as I'm behind the 8 ball on the technology in general.

Cheers,

-Jon

Reply Re: hardware xd bit disables 64bit support Mar 18, 2008 1:21 PM
in response to: caldwelljt
Click to view jmattson's profile Master jmattson 929 posts since
Mar 29, 2006
VMware
You can find a gentle introduction to VT and a comparison with binary translation in this ASPLOS paper. More detailed documentation is available in the IntelĀ® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide

For 64-bit guests, you need either "long mode segment limit enable" (provided by some AMD64 CPUs) or EM64T and VT (provided by some Intel CPUs). See KB 1901 for reference.

If Windows offers a method to bypass the hypervisor, that should work.

Actions