VirtualBox

Opened 11 years ago

Closed 10 years ago

#12049 closed defect (fixed)

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 (1)

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

Download all attachments as: .zip

Change History (8)

comment:1 by Frank Mehnert, 11 years ago

priority: criticalmajor

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.

by cinephy, 11 years ago

Attachment: VBox.log added

AMD-V not working log file.

in reply to:  description comment:2 by cinephy, 11 years ago

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 by Michael Thayer, 11 years ago

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 by cinephy, 11 years ago

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 by cinephy, 11 years ago

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 by Ramshankar Venkataraman, 11 years ago

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 11 years ago by Ramshankar Venkataraman (previous) (diff)

comment:7 by Frank Mehnert, 10 years ago

Resolution: fixed
Status: newclosed

The mentioned fix is part of VBox 4.3.2.

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use