i915kms.ko: link_elf_obj: symbol __lkpi_fpu_ctx_level undefined

From: FreeBSD User <freebsd_at_walstatt-de.de>
Date: Sat, 22 Apr 2023 10:47:57 UTC
Running FreeBSD-13-STABLE ( FreeBSD 13.2-STABLE #2 stable/13-n255158-9f9b65a0933a: Sat Apr 22
11:20:16 CEST 2023 AMD64) on a Lenovo T560 (see below for some technical specifications).

OS has cusatomised kernel. The system is compiled on-site.

Scenario one:

In /etc/src.conf:
PORTS_MODULES+= graphics/drm-kmod
PORTS_MODULES+= graphics/drm-510-kmod


compiling drm-kmod kernel module whenever a kernel is compiled. In this scenario
running X11 with windowmaker (windowmaker-0.95.9_1 x11-wm/windowmaker) as the window
system, running wmaker crashes silently the box! This happens with poudriere compiled ports
using almost the same FreeBSD 13 as installed on the notebook, it happens also with official
ports taken from a freebsd pkg mirror, designated branch "latest".

Scenario two:

Using the official drm-kmod and drm-510-kmod from the pkg repository designated "latest". The
kernel drops this kernel messages onto the console:

[...]
login: link_elf_obj: symbol __lkpi_fpu_ctx_level undefined
linker_load_file: /boot/modules/i915kms.ko - unsupported file type
link_elf_obj: symbol __lkpi_fpu_ctx_level undefined
linker_load_file: /boot/modules/i915kms.ko - unsupported file type
link_elf_obj: symbol __lkpi_fpu_ctx_level undefined
linker_load_file: /boot/modules/i915kms.ko - unsupported file type
link_elf_obj: symbol __lkpi_fpu_ctx_level undefined
linker_load_file: /boot/modules/i915kms.ko - unsupported file type
link_elf_obj: symbol __lkpi_fpu_ctx_level undefined
linker_load_file: /boot/modules/i915kms.ko - unsupported file type
link_elf_obj: symbol __lkpi_fpu_ctx_level undefined
linker_load_file: /boot/modules/i915kms.ko - unsupported file type
link_elf_obj: symbol __lkpi_fpu_ctx_level undefined
linker_load_file: /boot/modules/i915kms.ko - unsupported file type
[...]

kldstat reveals these modules loaded:

$ kldstat
Id Refs Address                Size Name
 1   64 0xffffffff80200000  1afd148 kernel
 2    1 0xffffffff81cff000     8050 acpi_wmi.ko
 3    1 0xffffffff838f9000     73b0 linprocfs.ko
 4    3 0xffffffff83901000     be88 linux_common.ko
 5    1 0xffffffff8390d000     3284 linsysfs.ko
 6    1 0xffffffff83911000    2eca0 linux64.ko
 7    1 0xffffffff83940000   1818b8 i915kms.ko
 8    1 0xffffffff83ac2000    73bd8 drm.ko
 9    2 0xffffffff83b36000     30fc linuxkpi_gplv2.ko
10    3 0xffffffff83b3a000     62d8 dmabuf.ko
11    1 0xffffffff83b41000     c748 agp.ko
12    1 0xffffffff83b4e000     22e0 uarduno.ko
13    1 0xffffffff83b51000    18310 if_iwm.ko
14    1 0xffffffff83c00000   207d78 iwm8000Cfw.ko
15    1 0xffffffff83b6a000     6730 cuse.ko


I tried several window manager, twm seems to work as well as x11-wm/blackbox, but they also
crash silently when starting larger applications like libreoffice or firefox. So, the problem
is not bound to windowmaker.

Another "fun" part is that I also use FreeBSD 13-STABLE on an oldish HP 800 G1 UltraSlim/Small
box, also using i915 iGPU driver, also x11-wm/windowmaker, there is no such thing of crashing
or even the funny "symbol __lkpi_fpu_ctx_level undefined: message - but the system has an
oldish iGPU and is another architecture at least in some details, so the comparison might be
inadequate - but as a hint?


dmesg of the Lenovo T560:

[...]
CPU: Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz (2807.99-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x406e3  Family=0x6  Model=0x4e  Stepping=3
  Features=0xbfebfbff<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,HTT,TM,PBE>
  Features2=0x7ffafbff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x121<LAHF,ABM,Prefetch>
  Structured Extended
Features=0x29c6fbf<FSGSBASE,TSCADJ,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,NFPUSG,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PROCTRACE>
Structured Extended Features3=0xbc002e00<MCUOPT,MD_CLEAR,TSXFA,IBPB,STIBP,L1DFL,ARCH_CAP,SSBD>
XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES> IA32_ARCH_CAPS=0xc04<RSBA>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID
  TSC: P-state invariant, performance statistics
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
[drm] Unable to create a private tmpfs mount, hugepage support will be disabled(-19).
[drm] Got stolen memory base 0xba800000, size 0x2000000
[...]

# dmesg | grep drm
[...]
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
[drm] Unable to create a private tmpfs mount, hugepage support will be disabled(-19).
[drm] Got stolen memory base 0xba800000, size 0x2000000
lkpi_iic0: <LinuxKPI I2C> on drmn0
lkpi_iic1: <LinuxKPI I2C> on drmn0
lkpi_iic2: <LinuxKPI I2C> on drmn0
drmn0: successfully loaded firmware image 'i915/skl_dmc_ver1_27.bin'
drmn0: [drm] Finished loading DMC firmware i915/skl_dmc_ver1_27.bin (v1.27)
lkpi_iic3: <LinuxKPI I2C> on drm1
lkpi_iic4: <LinuxKPI I2C> on drm2
lkpi_iic5: <LinuxKPI I2C> on drm4
[drm] Initialized i915 1.6.0 20200917 for drmn0 on minor 0
name=drmn0 flags=0x0 stride=7680 bpp=32
[...]

-- 
O. Hartmann