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 } |