You are not logged in.
Hi,
since my upgrade to linux-4.12.3 on an Intel Core 2 Duo E 6420 (with vmx flag in "/proc/cpuinfo") the "/dev/kvm" file is not created anymore. When creating it manually and accessing it via qemu, it gives "No such device". I downgraded to linux-4.11.9 and now have kvm support again. It seems that the "kvm_intel" module on the newer kernel is not correctly loaded.
When manually trying to load this module on the 4.12.3 kernel (via "modprobe kvm_intel"), I get an error: "modprobe: ERROR: could not insert 'kvm_intel': Input/output error".
Do I have to change some configuration options to make kvm work again or is this a bug?
Best Regards!
Last edited by Rachus (2018-02-07 17:33:49)
Offline
It is built as a module on my system. You have an error in the name of your module...
ewaller@turing ~ [1]1146 %uname -a
Linux turing 4.12.4-1-ARCH #1 SMP PREEMPT Fri Jul 28 18:54:18 UTC 2017 x86_64 GNU/Linux
ewaller@turing ~ 1147 %zcat /proc/config.gz | grep KVM
CONFIG_KVM_GUEST=y
# CONFIG_KVM_DEBUG_FS is not set
CONFIG_PTP_1588_CLOCK_KVM=m
CONFIG_DRM_I915_GVT_KVMGT=m
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_HAVE_KVM_MSI=y
CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_COMPAT=y
CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
ewaller@turing ~ 1148 %locate kvm_intel
ewaller@turing ~ [1]1149 %locate kvm-intel
/home/ewaller/devel/build/linux/.tmp_versions/kvm-intel.mod
/home/ewaller/devel/build/linux/arch/x86/kvm/.kvm-intel.ko.cmd
/home/ewaller/devel/build/linux/arch/x86/kvm/.kvm-intel.mod.o.cmd
/home/ewaller/devel/build/linux/arch/x86/kvm/.kvm-intel.o.cmd
/home/ewaller/devel/build/linux/arch/x86/kvm/kvm-intel.ko
/home/ewaller/devel/build/linux/arch/x86/kvm/kvm-intel.mod.c
/home/ewaller/devel/build/linux/arch/x86/kvm/kvm-intel.mod.o
/home/ewaller/devel/build/linux/arch/x86/kvm/kvm-intel.o
/usr/lib/modules/4.12.4-1-ARCH/kernel/arch/x86/kvm/kvm-intel.ko.gz
ewaller@turing ~ 1150 %
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
The difference between dash and underscore seems to be ignored for module names.
rachus, output of
modinfo kvm-intel
& modinfo kvm_intel
please ?
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
The difference between dash and underscore seems to be ignored for module names.
Really? I'll take your word for it. Surprised though.
In addition to the output Lone_Wolf asked for, let's do a sanity check and see if the kernel you are running is the one you think you are running. Post the output of uname -a
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
Lone_Wolf wrote:The difference between dash and underscore seems to be ignored for module names.
Really? I'll take your word for it. Surprised though.
Off-Topic: Just FYI, it's there in the man page of modprobe:
modprobe intelligently adds or removes a module from the Linux kernel:
note that for convenience, there is no difference between _ and - in
module names (automatic underscore conversion is performed).
Offline
rachus, output of
modinfo kvm-intel
filename: /lib/modules/4.12.3-1-ARCH/kernel/arch/x86/kvm/kvm-intel.ko.gz
license: GPL
author: Qumranet
alias: cpu:type:x86,ven*fam*mod*:feature:*0085*
depends: kvm
intree: Y
vermagic: 4.12.3-1-ARCH SMP preempt mod_unload modversions
parm: vpid:bool
parm: flexpriority:bool
parm: ept:bool
parm: unrestricted_guest:bool
parm: eptad:bool
parm: emulate_invalid_guest_state:bool
parm: fasteoi:bool
parm: enable_apicv:bool
parm: enable_shadow_vmcs:bool
parm: nested:bool
parm: pml:bool
parm: preemption_timer:bool
parm: ple_gap:int
parm: ple_window:int
parm: ple_window_grow:int
parm: ple_window_shrink:int
parm: ple_window_max:int
& modinfo kvm_intel
please ?
filename: /lib/modules/4.12.3-1-ARCH/kernel/arch/x86/kvm/kvm-intel.ko.gz
license: GPL
author: Qumranet
alias: cpu:type:x86,ven*fam*mod*:feature:*0085*
depends: kvm
intree: Y
vermagic: 4.12.3-1-ARCH SMP preempt mod_unload modversions
parm: vpid:bool
parm: flexpriority:bool
parm: ept:bool
parm: unrestricted_guest:bool
parm: eptad:bool
parm: emulate_invalid_guest_state:bool
parm: fasteoi:bool
parm: enable_apicv:bool
parm: enable_shadow_vmcs:bool
parm: nested:bool
parm: pml:bool
parm: preemption_timer:bool
parm: ple_gap:int
parm: ple_window:int
parm: ple_window_grow:int
parm: ple_window_shrink:int
parm: ple_window_max:int
It really does not seem to make any difference regarding the exact name of the module.
Further information:
$ uname -a
Linux Centaurus 4.12.3-1-ARCH #1 SMP PREEMPT Sat Jul 22 15:32:02 UTC 2017 x86_64 GNU/Linux
$ zgrep -i kvm /proc/config.gz
CONFIG_KVM_GUEST=y
# CONFIG_KVM_DEBUG_FS is not set
CONFIG_PTP_1588_CLOCK_KVM=m
CONFIG_DRM_I915_GVT_KVMGT=m
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_HAVE_KVM_MSI=y
CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_COMPAT=y
CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
(it's the stock kernel of Archlinux)
Offline
This is getting weirder. Another sanity check. What is the output of lspci -nn
?
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub [8086:2770] (rev 02)
00:01.0 PCI bridge [0604]: Intel Corporation 82945G/GZ/P/PL PCI Express Root Port [8086:2771] (rev 02)
00:1b.0 Audio device [0403]: Intel Corporation NM10/ICH7 Family High Definition Audio Controller [8086:27d8] (rev 01)
00:1c.0 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 1 [8086:27d0] (rev 01)
00:1c.3 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 4 [8086:27d6] (rev 01)
00:1d.0 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 [8086:27c8] (rev 01)
00:1d.1 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 [8086:27c9] (rev 01)
00:1d.2 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 [8086:27ca] (rev 01)
00:1d.3 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 [8086:27cb] (rev 01)
00:1d.7 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller [8086:27cc] (rev 01)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev e1)
00:1f.0 ISA bridge [0601]: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge [8086:27b8] (rev 01)
00:1f.1 IDE interface [0101]: Intel Corporation 82801G (ICH7 Family) IDE Controller [8086:27df] (rev 01)
00:1f.2 IDE interface [0101]: Intel Corporation NM10/ICH7 Family SATA Controller [IDE mode] [8086:27c0] (rev 01)
00:1f.3 SMBus [0c05]: Intel Corporation NM10/ICH7 Family SMBus Controller [8086:27da] (rev 01)
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 01)
04:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107 [GeForce GTX 650] [10de:0fc6] (rev a1)
04:00.1 Audio device [0403]: NVIDIA Corporation GK107 HDMI Audio Controller [10de:0e1b] (rev a1)
Edit: Maybe, I should note that I'm using the "nvidia" driver module (version 384.59-1). But I don't know how it should affect KVM functionality
Last edited by Rachus (2017-07-30 18:37:33)
Offline
I'd say it is a bug and if you can't solve it you should look in upstream's bug tracker for reports of similar problems and if you cant find any you should bisect the kernel and try to find which commit breaks things for you and then report it upstream.
Also look at the bios/firmware setup for any options related to virtualization, maybe now the driver is doing more checks than before and if something is disabled it bails out.
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline
HI,
I have exactly the same problem
I tried to create a new VM from scratch. Yes, it starts, but very very very slow
I tried to recreate VM with import existing disk. it starts very very very slow
Offline
I'd say it is a bug and if you can't solve it you should look in upstream's bug tracker for reports of similar problems and if you cant find any you should bisect the kernel and try to find which commit breaks things for you and then report it upstream.
Also look at the bios/firmware setup for any options related to virtualization, maybe now the driver is doing more checks than before and if something is disabled it bails out.
Oh, that's unfortunate. I will try to look more into the problem, when I find the time. Thank you very much for your efforts!
@Sadar: Which kind of CPU are you using? Maybe it is related to the processor generation.
Offline
Mark as read
# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 15
Model name: Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz
Stepping: 6
CPU MHz: 1600.000
CPU max MHz: 1867,0000
CPU min MHz: 1600,0000
BogoMIPS: 3725.60
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 2048K
NUMA node0 CPU(s): 0,1
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl cpuid aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow dtherm
If you were wondering where your post went, I think you meant to hit the reply link, not the report link
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
lscpu is not the command to answer your question on the cpu?
Last edited by Sadar (2017-07-30 20:43:57)
Offline
For the first time I just opened a bug because I no longer have any VMs that work properly
Offline
I would not expect any action to be taken from that bug report as there is no evidence the source of the bug is packaging or integration performed by the package maintainer.
Please follow Rookies advise in post #9.
Offline
My internet connection is very slow. So it will probably still take some time, until I can start bisecting. If someone has more insights into linux or wants to test something, I found the following commits between 4.11.9 and 4.12.3 which mentioned kvm:
Offline
If I didn't get it wrong I'd say there are a lot more changes than that, here's the shortlog:
Andrew Jones (1):
KVM: add explicit barrier to kvm_vcpu_kick
Andy Lutomirski (1):
x86/gdt: Get rid of the get_*_gdt_*_vaddr() helpers
Bandan Das (3):
kvm: x86: Add a hook for arch specific dirty logging emulation
nVMX: Implement emulated Page Modification Logging
nVMX: Advertise PML to L1 hypervisor
Borislav Petkov (1):
kvm/svm: Setup MCG_CAP on AMD properly
Dan Carpenter (2):
kvm: nVMX: off by one in vmx_write_pml_buffer()
KVM: Silence underflow warning in avic_get_physical_id_entry()
David Hildenbrand (26):
KVM: nVMX: single function for switching between vmcs
KVM: x86: fix user triggerable warning in kvm_apic_accept_events()
KVM: x86: new irqchip mode KVM_IRQCHIP_INIT_IN_PROGRESS
KVM: x86: check against irqchip_mode in kvm_set_routing_entry()
KVM: x86: check against irqchip_mode in pic_in_kernel()
KVM: x86: check against irqchip_mode in ioapic_in_kernel()
KVM: x86: get rid of pic_irqchip()
KVM: x86: get rid of ioapic_irqchip()
KVM: x86: use ioapic_in_kernel() to check for ioapic existence
KVM: x86: remove duplicate checks for ioapic
KVM: x86: convert kvm_(set|get)_ioapic() into void
KVM: x86: don't take kvm->irq_lock when creating IRQCHIP
KVM: x86: push usage of slots_lock down
KVM: x86: KVM_IRQCHIP_PIC_MASTER only has 8 pins
KVM: x86: remove all-vcpu request from kvm_ioapic_init()
KVM: x86: directly call kvm_make_scan_ioapic_request() in ioapic.c
KVM: x86: rename kvm_vcpu_request_scan_ioapic()
KVM: x86: drop goto label in kvm_set_routing_entry()
KVM: x86: simplify pic_unlock()
KVM: x86: make kvm_pic_reset() static
KVM: x86: drop picdev_in_range()
KVM: x86: set data directly in picdev_read()
KVM: x86: simplify pic_ioport_read()
KVM: x86: use irqchip_kernel() to check for pic+ioapic
KVM: VMX: drop vmm_exclusive module parameter
KVM: x86: don't hold kvm->lock in KVM_SET_GSI_ROUTING
Denis Plotnikov (2):
KVM: x86: remaster kvm_write_tsc code
KVM: x86: fix maintaining of kvm_clock stability on guest CPU hotplug
Gioh Kim (1):
KVM: SVM: ignore type when setting segment registers
Haozhong Zhang (1):
kvm: vmx: allow host to access guest MSR_IA32_BNDCFGS
Jan H. Schönherr (2):
KVM: nVMX: Fix handling of lmsw instruction
KVM: x86: Fix virtual wire mode
Jim Mattson (8):
kvm: vmx: Don't use INVVPID when EPT is enabled
kvm: nVMX: Disallow userspace-injected exceptions in guest mode
kvm: nVMX: Remove superfluous VMX instruction fault checks
kvm: nVMX: Don't validate disabled secondary controls
kvm: nVMX: Validate CR3 target count on nested VM-entry
kvm: vmx: Do not disable intercepts for BNDCFGS
kvm: x86: Guest BNDCFGS requires guest MPX support
kvm: vmx: Check value written to IA32_BNDCFGS
Kyle Huey (1):
KVM: x86: virtualize cpuid faulting
Ladi Prosek (2):
KVM: x86: Add MSR_AMD64_DC_CFG to the list of ignored MSRs
KVM: x86: fix emulation of RSM and IRET instructions
Marcelo Tosatti (1):
KVM: x86: remove irq disablement around KVM_SET_CLOCK/KVM_GET_CLOCK
Michael S. Tsirkin (1):
kvm: better MWAIT emulation for guests
Michal Hocko (1):
mm: introduce kv[mz]alloc helpers
Paolo Bonzini (11):
KVM: VMX: require virtual NMI support
KVM: x86: drop legacy device assignment
KVM: nVMX: we support 1GB EPT pages
KVM: VMX: remove bogus check for invalid EPT violation
kvm: x86: MMU support for EPT accessed/dirty bits
kvm: nVMX: support EPT accessed/dirty bits
KVM: nVMX: support RDRAND and RDSEED exiting
kvm: make KVM_CAP_COALESCED_MMIO architecture agnostic
Revert "KVM: Support vCPU-based gfn->hva cache"
KVM: nVMX: fix EPT permissions as reported in exit qualification
KVM: x86: fix singlestepping over syscall
Radim Krčmář (7):
KVM: nVMX: fix AD condition when handling EPT violation
KVM: add kvm_{test,clear}_request to replace {test,clear}_bit
KVM: x86: always use kvm_make_request instead of set_bit
KVM: x86: zero base3 of unusable segments
KVM: x86/vPMU: fix undefined shift in intel_pmu_refresh()
KVM: x86: prevent uninitialized variable warning in check_svme()
KVM: nVMX: fix nested_vmx_check_vmptr failure paths under debugging
Roman Pen (1):
KVM: SVM: do not zero out segment attributes if segment is unusable or not present
Thomas Garnier (1):
x86: Make the GDT remapping read-only on 64-bit
Wanpeng Li (8):
KVM: x86: Fix load damaged SSEx MXCSR register
KVM: VMX: Don't enable EPT A/D feature if EPT feature is disabled
KVM: x86: Fix potential preemption when get the current kvmclock timestamp
KVM: X86: Fix read out-of-bounds vulnerability in kvm pio emulation
KVM: X86: Fix preempt the preemption timer cancel
KVM: nVMX: Fix exception injection
KVM: cpuid: Fix read/write out-of-bounds vulnerability in cpuid emulation
KVM: async_pf: avoid async pf injection when in guest mode
ZhuangYanying (1):
KVM: x86: Fix nmi injection failure when vcpu got blocked
The one that looks interesting is this one "KVM: VMX: require virtual NMI support", the full commit message as follows:
commit 2c82878b0cb38fd516fd612c67852a6bbf282003
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: Mon Mar 27 14:37:28 2017 +0200KVM: VMX: require virtual NMI support
Virtual NMIs are only missing in Prescott and Yonah chips. Both are obsolete
for virtualization usage---Yonah is 32-bit only even---so drop vNMI emulation.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
But I'm not sure this affects the cpu you are using.
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline
If I didn't get it wrong I'd say there are a lot more changes than that, here's the shortlog:
Thanks for the information. It seems that I haven't looked enough into the past.
The one that looks interesting is this one "KVM: VMX: require virtual NMI support", the full commit message as follows:
commit 2c82878b0cb38fd516fd612c67852a6bbf282003
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: Mon Mar 27 14:37:28 2017 +0200KVM: VMX: require virtual NMI support
Virtual NMIs are only missing in Prescott and Yonah chips. Both are obsolete
for virtualization usage---Yonah is 32-bit only even---so drop vNMI emulation.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>But I'm not sure this affects the cpu you are using.
Actually, I'm using a Conroe cpu, but I don't know, if they support virtual nmis.
My computer just finished cloning the repository. So I can start bisecting now. I can't say when I will have results but I will write here, if I find something.
Offline
Rookie was your output was from something like the following?
git shortlog v4.11..v4.12 -- 'arch/x86/kvm/'
Offline
Yes something like that, 'git shortlog --no-merges v4.11.9..v4.12.3 -- arch/x86/kvm' or 'git log --no-merges v4.11.9..v4.12.3 -- arch/x86/kvm'.
Edit:
I've done this on a git clone of linux-stable.
Last edited by R00KIE (2017-07-31 20:30:25)
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline
Same problem here...
Switching from linux-ck-core2 (4.11.12) to mainline kernel (4.12.4) I get:
modprobe: ERROR: could not insert 'kvm_intel': Input/output error
CPU Intel Core2Duo E6300 (conroe).
Last edited by losko (2017-08-01 15:01:34)
"Greetings from the Banana Republic"
Offline
Update with the latest version of librvirt 3.6.0-1, I still have problem
Virsh start archigate
Error: Failed to start domain archigate
Error: unsupported configuration: Domain requires KVM, but it is not available. BIOS, and host configuration is setup to load the kvm modules
The BIOS of my server has not been touched for several years and it is at the last level of update
Offline
See 'man git-bisect'.
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline
I just downgade the whole system on the 2017/07/25 because i know it was working on that date...And it works !!
Offline
Another idea is to use the LTS Kernel, linux-lts
Offline