SVM: reliably detect if SVM was disabled by BIOS
PATCH 1/1 SVM: reliably detect if SVM was disabled by BIOS
From: Joerg Roedel <[email protected]>
This patch adds an implementation to the svm is_disabled function to detect reliably if the BIOS disabled the SVM feature in the CPU. This fixes the issues with kernel panics when loading the kvm-amd module on machines where SVM is available but disabled.
Signature · 6 lines
| AMD Saxony Limited Liability Company & Co. KG
Operating | Wilschdorfer Landstr. 101, 01109 Dresden, Germany
System | Register Court Dresden: HRA 4896
Research | General Partner authorized to represent:
Center | AMD Saxony LLC (Wilmington, Delaware, US)
| General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoydrivers/kvm/svm.c +6 -0
@@ -1727,6 +1727,12 @@ static void svm_inject_page_fault(struct kvm_vcpu *vcpu,static int is_disabled (void ) { +uint64_t vm_cr; + +rdmsrl (MSR_VM_CR , vm_cr); +if (vm_cr & (1 <<SVM_VM_CR_SVM_DISABLE )) +return 1 ; +return 0 ; }
drivers/kvm/svm.h +3 -0
@@ -175,8 +175,11 @@ struct __attribute__ ((__packed__)) vmcb {#define SVM_CPUID_FUNC 0x8000000a#define MSR_EFER_SVME_MASK (1ULL << 12) +#define MSR_VM_CR 0xc0010114ULL#define MSR_VM_HSAVE_PA 0xc0010117ULL +#define SVM_VM_CR_SVM_DISABLE 4 +#define SVM_SELECTOR_S_SHIFT 4#define SVM_SELECTOR_DPL_SHIFT 5#define SVM_SELECTOR_P_SHIFT 7
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
Avi Kivity
AppliedQuoted 8 lines · Joerg Roedel
From: Joerg Roedel <[email protected]>
This patch adds an implementation to the svm
is_disabledfunction to detect reliably if the BIOS disabled the SVM feature in the CPU. This fixes the issues with kernel panics when loading the kvm-amd module on machines where SVM is available but disabled.
Applied; thanks.
Is this msr documented anywhere? I assume it is implemented on all processors with svm?
Signature · 8 lines
Do not meddle in the internals of kernels, for they are subtle and quick to panic. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/
Quoted 10 lines · Avi Kivity
Quoted 8 lines · Joerg Roedel
From: Joerg Roedel <[email protected]>
This patch adds an implementation to the svm
is_disabledfunction to detect reliably if the BIOS disabled the SVM feature in the CPU. This fixes the issues with kernel panics when loading the kvm-amd module on machines where SVM is available but disabled.
Quoted 4 lines
Applied; thanks.
Is this msr documented anywhere? I assume it is implemented on all processors with svm?
Not in the public documentation yet. But it will be documented with one of the next documentation updates. This MSR is implemented in all SVM capable processors.
Regards,
Joerg
Signature · 14 lines
| AMD Saxony Limited Liability Company & Co. KG
Operating | Wilschdorfer Landstr. 101, 01109 Dresden, Germany
System | Register Court Dresden: HRA 4896
Research | General Partner authorized to represent:
Center | AMD Saxony LLC (Wilmington, Delaware, US)
| General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/