Also, now that I think about it, shouldn't this code be in #ifdef
statements (or something) so it is not compiled in on an intel target?
On 6/26/07, Russell Harmon <[EMAIL PROTECTED]> wrote:
> are you doing it in the kernel tree, or the userspace tree. I forgot
> to mention that the offending files are in the kernel tree. The output
> of git show cfc329b216bc3e54fe1107e8f714c7b3bc133224 in the kernel
> tree is as follows:
>
> commit cfc329b216bc3e54fe1107e8f714c7b3bc133224
> Author: Joerg Roedel <[EMAIL PROTECTED]>
> Date: Fri Jun 22 12:29:50 2007 +0300
>
> KVM: SVM: Reliably detect if SVM was disabled by BIOS
>
> 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.
>
> Signed-off-by: Joerg Roedel <[EMAIL PROTECTED]>
> Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>
>
> diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c
> index 62ec38c..a0d4428 100644
> --- a/drivers/kvm/svm.c
> +++ b/drivers/kvm/svm.c
> @@ -1735,6 +1735,12 @@ static void svm_inject_page_fault(struct kvm_vcpu
> *vcpu,
>
> static int is_disabled(void)
> {
> + u64 vm_cr;
> +
> + rdmsrl(MSR_VM_CR, vm_cr);
> + if (vm_cr & (1 << SVM_VM_CR_SVM_DISABLE))
> + return 1;
> +
> return 0;
> }
>
> diff --git a/drivers/kvm/svm.h b/drivers/kvm/svm.h
> index 5e93814..005a9c5 100644
> --- a/drivers/kvm/svm.h
> +++ b/drivers/kvm/svm.h
> @@ -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
>
>
> On 6/26/07, Avi Kivity <[EMAIL PROTECTED]> wrote:
> > Russell Harmon wrote:
> > > Ok, I figured out the problem. It seems to compile fine when I remove
> > > the changes made to svm.c in commit
> > > cfc329b216bc3e54fe1107e8f714c7b3bc133224. I am using my laptop which
> > > is an intel centrino duo processor with vmx.
> > >
> >
> > I don't have a cfc329b216bc3e54fe1107e8f714c7b3bc133224. What does 'git
> > show cfc329b216bc3e54fe1107e8f714c7b3bc133224' say?
> >
> >
>
-------------------------------------------------------------------------
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