VirtualBox

Ticket #12049 (closed defect: fixed)

Opened 9 years ago

Last modified 9 years ago

AMD-V not available under Windows 8.1

Reported by: TheXDS Owned by:
Component: VMM Version: VirtualBox 4.2.16
Keywords: AMD, virtualization, issues, AMD-V Cc:
Guest type: other Host type: Windows

Description

I tried to run a OS/2 virtual machine after I upgraded to Windows 8.1 Pro (host). When I had my old Windows 7, it worked fine, but now that I switched to 8.1, AMD-V seems to be unavailable to VirtualBox. I guess it may be the same for Intel VT-x

Attachments

VBox.log Download (68.8 KB) - added by cinephy 9 years ago.
AMD-V not working log file.

Change History

comment:1 Changed 9 years ago by frank

  • priority changed from critical to major

A VBox.log file of such a VM session when you try to boot your OS/2 guest with AMD-V enabled would be very appreciated.

Changed 9 years ago by cinephy

AMD-V not working log file.

comment:2 in reply to: ↑ description Changed 9 years ago by cinephy

Replying to TheXDS:

I tried to run a OS/2 virtual machine after I upgraded to Windows 8.1 Pro (host). When I had my old Windows 7, it worked fine, but now that I switched to 8.1, AMD-V seems to be unavailable to VirtualBox. I guess it may be the same for Intel VT-x

I am having the same problem after upgrading from Windows 8 to 8.1, I have attached my VBox.log above.

comment:3 Changed 9 years ago by michael

cinephy: the log file says that VirtualBox is using AMD-V. What makes you think that it isn't, or what is failing to work on your system?

comment:4 Changed 9 years ago by cinephy

Yeah that's the part I don't get. It says it is using AMD-V but it will not load a 64-bit kernel in a linux guest. Maybe I am looking in the wrong place but I think it is still an AMD-V problem.

comment:5 Changed 9 years ago by cinephy

More research indicates that this may be an issue with the BIOS not setting the lock on the VMX feature in the MSR. I think was posting in the wrong place. Thanks again and here is the forum post that better describes my problem.  https://forums.virtualbox.org/viewtopic.php?f=6&t=57871

comment:6 Changed 9 years ago by ramshankar

That forum thread is only talking about VT-x and not AMD-V. There is no such MSR on AMD systems. On AMD CPUs, the MSR in question would be 0xc0010114. Particularly, bit 4 of that MSR must be clear (zero) for AMD-V to be enabled. If the BIOS sets this bit, then according to the AMD-spec. AMD-V cannot be enabled which is what VirtualBox will report as "VERR_SVM_DISABLED".

Since the log file shows AMD-V is enabled, perhaps it is a typo/bug in the Support driver code that differs from the VM-initialization code (which was what it was for VT-x) but I checke and as far as I can see that is not the case.

Support driver:

/* Check if SVM is disabled */
u64FeatMsr = ASMRdMsr(MSR_K8_VM_CR);
if (!(u64FeatMsr & MSR_K8_VM_CR_SVM_DISABLE))
{
    uint32_t fSvmFeatures;
    *pfCaps |= SUPVTCAPS_AMD_V;
    ...
    return VINF_SUCCESS;
}
return VERR_SVM_DISABLED;

VM-init:

    uint64_t fVmCr = ASMRdMsr(MSR_K8_VM_CR);
    if (!(fVmCr & MSR_K8_VM_CR_SVM_DISABLE))
    {
        ....
        rc = VINF_SUCCESS;
    }
    else
        rc = VERR_SVM_DISABLED;

I cannot see any issue with AMD-V. The Intel code is what was buggy which has been fixed in trunk and will be available in the next maintenance release.

Now as for your real problem, not being able to load 64-bit guests change the guest-OS type to 64-bit or use this command:

VBoxManage modifyvm <vmname> --longmode on

This will then expose 64-bit CPU features to the guest. VirtualBox 4.3 is much more strict regarding the distinction between 32 and 64-bit guests.

Last edited 9 years ago by ramshankar (previous) (diff)

comment:7 Changed 9 years ago by frank

  • Status changed from new to closed
  • Resolution set to fixed

The mentioned fix is part of VBox 4.3.2.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use