Unknown symbols while loading kvm-intel.ko compiled in Crouton

329 views
Skip to first unread message

clippax

unread,
Dec 28, 2014, 2:08:44 AM12/28/14
to chromium-...@chromium.org
I have followed the instructions on "https://github.com/dnschneid/crouton/wiki/Build-kernel-headers-and-install-Virtualbox-%28x86%29" describing how to build modules from Crouton.  I have extracted the config.gz from the running kernel, and added the CONFIG_KVM=m.  The kvm-intel.ko module compiles alright, but wehn I run it, I get the errors shown below in the dmesg log.  Do you guys know if there are extra steps necessary when compiling modules for ChromeOs?

[10997.273805] Chromium OS LSM: init_module locking-ignored module="/home/none/kmod/kvm-kmod/x86/kvm-intel.ko" pid=5015 cmdline="insmod ./kvm-intel.ko"
[10997.275299] kvm_intel: Unknown symbol kvm_rdpmc (err 0)
[10997.275337] kvm_intel: Unknown symbol kvm_clear_guest_page (err 0)
[10997.275366] kvm_intel: Unknown symbol kvm_disable_largepages (err 0)
[10997.275400] kvm_intel: Unknown symbol kvm_exit (err 0)
[10997.275427] kvm_intel: Unknown symbol kvm_init (err 0)
[10997.275453] kvm_intel: Unknown symbol kvm_enable_efer_bits (err 0)
[10997.275481] kvm_intel: Unknown symbol kvm_fast_pio_out (err 0)
[10997.275508] kvm_intel: Unknown symbol kvm_mmu_get_spte_hierarchy (err 0)
[10997.275540] kvm_intel: Unknown symbol gfn_to_page (err 0)
[10997.275574] kvm_intel: Unknown symbol kvm_get_msr_common (err 0)
[10997.275609] kvm_intel: Unknown symbol __kvm_set_memory_region (err 0)
[10997.275640] kvm_intel: Unknown symbol kvm_vcpu_uninit (err 0)
[10997.275667] kvm_intel: Unknown symbol kvm_emulate_halt (err 0)
[10997.275694] kvm_intel: Unknown symbol kvm_set_apic_base (err 0)
[10997.275727] kvm_intel: Unknown symbol kvm_define_shared_msr (err 0)
[10997.275755] kvm_intel: Unknown symbol kvm_set_xcr (err 0)
[10997.275788] kvm_intel: Unknown symbol kvm_write_guest_virt_system (err 0)
[10997.275818] kvm_intel: Unknown symbol kvm_find_cpuid_entry (err 0)
[10997.275845] kvm_intel: Unknown symbol kvm_task_switch (err 0)
[10997.275872] kvm_intel: Unknown symbol kvm_read_guest_virt (err 0)
[10997.275899] kvm_intel: Unknown symbol kvm_enable_tdp (err 0)
[10997.275932] kvm_intel: Unknown symbol x86_emulate_instruction (err 0)
[10997.275963] kvm_intel: Unknown symbol __tracepoint_kvm_cr (err 0)
[10997.275991] kvm_intel: Unknown symbol kvm_mmu_set_mmio_spte_mask (err 0)
[10997.276070] kvm_intel: Unknown symbol kvm_disable_tdp (err 0)
[10997.276114] kvm_intel: Unknown symbol kvm_require_cpl (err 0)
[10997.276154] kvm_intel: Unknown symbol kvm_lmsw (err 0)
[10997.276181] kvm_intel: Unknown symbol kvm_lapic_set_eoi (err 0)
[10997.276213] kvm_intel: Unknown symbol kvm_set_memory_region (err 0)
[10997.276244] kvm_intel: Unknown symbol kvm_queue_exception (err 0)
[10997.276271] kvm_intel: Unknown symbol kvm_after_handle_nmi (err 0)
[10997.276301] kvm_intel: Unknown symbol kvm_write_guest_page (err 0)
[10997.276335] kvm_intel: Unknown symbol kvm_valid_efer (err 0)
[10997.276379] kvm_intel: Unknown symbol __tracepoint_kvm_page_fault (err 0)
[10997.276414] kvm_intel: Unknown symbol __tracepoint_kvm_inj_virq (err 0)
[10997.276443] kvm_intel: Unknown symbol kvm_cpu_has_interrupt (err 0)
[10997.276471] kvm_intel: Unknown symbol kvm_before_handle_nmi (err 0)
[10997.276502] kvm_intel: Unknown symbol kvm_apic_update_irr (err 0)
[10997.276530] kvm_intel: Unknown symbol kvm_emulate_wbinvd (err 0)
[10997.276557] kvm_intel: Unknown symbol kvm_set_cr3 (err 0)
[10997.276590] kvm_intel: Unknown symbol kvm_get_cr8 (err 0)
[10997.276617] kvm_intel: Unknown symbol kvm_x86_ops (err 0)
[10997.276646] kvm_intel: Unknown symbol kvm_vcpu_cache (err 0)
[10997.276673] kvm_intel: Unknown symbol kvm_set_dr (err 0)
[10997.276699] kvm_intel: Unknown symbol kvm_emulate_hypercall (err 0)
[10997.276731] kvm_intel: Unknown symbol __tracepoint_kvm_msr (err 0)
[10997.276761] kvm_intel: Unknown symbol kvm_spurious_fault (err 0)
[10997.276795] kvm_intel: Unknown symbol kvm_write_tsc (err 0)
[10997.276822] kvm_intel: Unknown symbol kvm_mmu_unprotect_page_virt (err 0)
[10997.276850] kvm_intel: Unknown symbol kvm_get_guest_memory_type (err 0)
[10997.276880] kvm_intel: Unknown symbol kvm_set_cr4 (err 0)
[10997.276907] kvm_intel: Unknown symbol kvm_release_page_clean (err 0)
[10997.276934] kvm_intel: Unknown symbol kvm_set_cr0 (err 0)
[10997.276963] kvm_intel: Unknown symbol kvm_set_cr8 (err 0)
[10997.276989] kvm_intel: Unknown symbol kvm_get_dr (err 0)
[10997.277248] kvm_intel: Unknown symbol kvm_mmu_page_fault (err 0)
[10997.277283] kvm_intel: Unknown symbol kvm_mmu_reset_context (err 0)
[10997.277313] kvm_intel: Unknown symbol kvm_vcpu_on_spin (err 0)
[10997.277342] kvm_intel: Unknown symbol kvm_read_guest (err 0)
[10997.277372] kvm_intel: Unknown symbol kvm_rebooting (err 0)
[10997.277401] kvm_intel: Unknown symbol kvm_get_rflags (err 0)
[10997.277428] kvm_intel: Unknown symbol kvm_queue_exception_e (err 0)
[10997.277457] kvm_intel: Unknown symbol __tracepoint_kvm_exit (err 0)
[10997.277485] kvm_intel: Unknown symbol kvm_emulate_cpuid (err 0)
[10997.277515] kvm_intel: Unknown symbol kvm_apic_set_eoi_accelerated (err 0)
[10997.277543] kvm_intel: Unknown symbol kvm_vcpu_init (err 0)
[10997.277569] kvm_intel: Unknown symbol kvm_vcpu_kick (err 0)
[10997.277598] kvm_intel: Unknown symbol handle_mmio_page_fault_common (err 0)
[10997.277626] kvm_intel: Unknown symbol kvm_inject_realmode_interrupt (err 0)
[10997.277654] kvm_intel: Unknown symbol kvm_mmu_invlpg (err 0)
[10997.277681] kvm_intel: Unknown symbol kvm_set_msr_common (err 0)
[10997.277709] kvm_intel: Unknown symbol kvm_set_shared_msr (err 0)
[10997.277737] kvm_intel: Unknown symbol kvm_inject_page_fault (err 0)
[10997.277764] kvm_intel: Unknown symbol kvm_release_page_dirty (err 0)
[10997.277796] kvm_intel: Unknown symbol kvm_complete_insn_gp (err 0)
[10997.277826] kvm_intel: Unknown symbol kvm_mmu_set_mask_ptes (err 0)
[10997.277853] kvm_intel: Unknown symbol kvm_apic_write_nodecode (err 0)

Thank you.

Mike Frysinger

unread,
Dec 28, 2014, 2:29:51 AM12/28/14
to None None, Chromium OS discuss
enabling kvm changes the kernel.  you must boot that kernel you created and not just try to copy over new kernel modules to an older kernel.
-mike

--
--
Chromium OS discuss mailing list: chromium-...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-os-discuss?hl=en


None None

unread,
Dec 28, 2014, 2:36:20 AM12/28/14
to Mike Frysinger, Chromium OS discuss
@Mike Frysinger,

Really? Even if I only set CONFIG_KVM=m and not CONFIG_KVM=y? If so,
does this mean that there is no way to have kvm enabled without
overwriting the actual kernel?

Thank you.

Mike Frysinger

unread,
Dec 28, 2014, 3:02:05 AM12/28/14
to None None, Chromium OS discuss
yes, really.  if enabling the kvm modules were safe (that is to say, there was no overhead when the modules weren't loaded), we would have shipped them in Chromebooks long ago.  you can see the options that get pulled in by doing a diff between the old kernel config and the new one after you run menuconfig.

this is also why the guide i pointed you to earlier describes building & installing your own kernel.
-mike

None None

unread,
Dec 28, 2014, 3:25:39 AM12/28/14
to Mike Frysinger, Chromium OS discuss
Thank you Mike. I just diffed the config from the kernel image and
the generated config (CONFIG_KVM=m), and they are very different. I
now wonder if kvm outside the kernel tree (kvm-kmod from git) would
modify the kernel image as well. I will try this tomorrow and see
what happens.

None None

unread,
Dec 28, 2014, 10:26:48 AM12/28/14
to Mike Frysinger, Chromium OS discuss
Alright, so it looks like the stock kernel supplied with the
chromebook does not have preemption notifiers that are necessary for
CONFIG_KVM=m. When the CONFIG_KVM=m is set and the module is compiled
in the kernel tree, a new kernel image will be generated with those
preemption notifiers. When the kvm is compile outside the kernel
tree, the "#error Preemption notifier emulation does not work for this
kernel." indicates that the stock kernel does not support preemption
notifiers.

Thank you.
Reply all
Reply to author
Forward
0 new messages