And after modprobe kvm_intel:

>From dmesg:

e1000e: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX
0000:00:19.0: eth0: 10/100 speed: disabling TSO
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present
kvm: disabled by bios
kvm: disabled by bios

2763 int kvm_arch_init(void *opaque)
2764 {
2765         int r, cpu;
2766         struct kvm_x86_ops *ops = (struct kvm_x86_ops *)opaque;
2767
2768         if (kvm_x86_ops) {
2769                 printk(KERN_ERR "kvm: already loaded the other module\n");
2770                 r = -EEXIST;
2771                 goto out;
2772         }
2773
2774         if (!ops->cpu_has_kvm_support()) {
2775                 printk(KERN_ERR "kvm: no hardware support\n");
2776                 r = -EOPNOTSUPP;
2777                 goto out;
2778         }
2779         if (ops->disabled_by_bios()) {
2780                 printk(KERN_ERR "kvm: disabled by bios\n");
2781                 r = -EOPNOTSUPP;
2782                 goto out;
2783         }
2784
2785         r = kvm_mmu_module_init();
2786         if (r)
2787                 goto out;
2788
2789         kvm_init_msr_list();
2790
2791         kvm_x86_ops = ops;
2792         kvm_mmu_set_nonpresent_ptes(0ull, 0ull);
2793         kvm_mmu_set_base_ptes(PT_PRESENT_MASK);


and:

3687 static struct kvm_x86_ops vmx_x86_ops = {
3688         .cpu_has_kvm_support = cpu_has_kvm_support,
3689         .disabled_by_bios = vmx_disabled_by_bios,
3690         .hardware_setup = hardware_setup,
3691         .hardware_unsetup = hardware_unsetup,
3692         .check_processor_compatibility = vmx_check_processor_compat,
3693         .hardware_enable = hardware_enable,
3694         .hardware_disable = hardware_disable,
3695         .cpu_has_accelerated_tpr = report_flexpriority,
3696
3697         .vcpu_create = vmx_create_vcpu,
3698         .vcpu_free = vmx_free_vcpu,
3699         .vcpu_reset = vmx_vcpu_reset,
3700
3701         .prepare_guest_switch = vmx_save_host_state,
3702         .vcpu_load = vmx_vcpu_load,
3703         .vcpu_put = vmx_vcpu_put,
3704
3705         .set_guest_debug = set_guest_debug,
3706         .get_msr = vmx_get_msr,
3707         .set_msr = vmx_set_msr,
3708         .get_segment_base = vmx_get_segment_base,
3709         .get_segment = vmx_get_segment,
3710         .set_segment = vmx_set_segment,
3711         .get_cpl = vmx_get_cpl,
3712         .get_cs_db_l_bits = vmx_get_cs_db_l_bits,
3713         .decache_cr4_guest_bits = vmx_decache_cr4_guest_bits,
3714         .set_cr0 = vmx_set_cr0,
3715         .set_cr3 = vmx_set_cr3,
3716         .set_cr4 = vmx_set_cr4,
3717         .set_efer = vmx_set_efer,
3718         .get_idt = vmx_get_idt,
3719         .set_idt = vmx_set_idt,
3720         .get_gdt = vmx_get_gdt,
3721         .set_gdt = vmx_set_gdt,
3722         .cache_reg = vmx_cache_reg,
3723         .get_rflags = vmx_get_rflags,
3724         .set_rflags = vmx_set_rflags,
3725
3726         .tlb_flush = vmx_flush_tlb,
3727
3728         .run = vmx_vcpu_run,
3729         .handle_exit = vmx_handle_exit,
3730         .skip_emulated_instruction = skip_emulated_instruction,
3731         .set_interrupt_shadow = vmx_set_interrupt_shadow,
3732         .get_interrupt_shadow = vmx_get_interrupt_shadow,
3733         .patch_hypercall = vmx_patch_hypercall,
3734         .set_irq = vmx_inject_irq,
3735         .set_nmi = vmx_inject_nmi,
3736         .queue_exception = vmx_queue_exception,
3737         .interrupt_allowed = vmx_interrupt_allowed,
3738         .nmi_allowed = vmx_nmi_allowed,
3739         .enable_nmi_window = enable_nmi_window,
3740         .enable_irq_window = enable_irq_window,
3741         .update_cr8_intercept = update_cr8_intercept,
3742
3743         .set_tss_addr = vmx_set_tss_addr,
3744         .get_tdp_level = get_ept_level,
3745         .get_mt_mask = vmx_get_mt_mask,
3746 };


1085 static __init int vmx_disabled_by_bios(void)
1086 {
1087         u64 msr;
1088
1089         rdmsrl(MSR_IA32_FEATURE_CONTROL, msr);
1090         return (msr & (FEATURE_CONTROL_LOCKED |
1091                        FEATURE_CONTROL_VMXON_ENABLED))
1092             == FEATURE_CONTROL_LOCKED;
1093         /* locked but not enabled */
1094 }

Reply via email to