Bug 1540673

Summary: improper module deployment with dkms-nvidia from negativo17
Product: [Fedora] Fedora EPEL Reporter: Jay Hilliard <jay.hilliard>
Component: dkmsAssignee: Simone Caronni <negativo17>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel7CC: negativo17
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-05-09 07:16:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jay Hilliard 2018-01-31 17:09:38 UTC
Description of problem:
dkms creates weak-updates/lib/modules/$KERNEL/$MODULE.ko on kernels that already have a real module in extra/$MODULE.ko

Version-Release number of selected component (if applicable):
RHEL7.4 + EPEL + negativo17

How reproducible:
Always

Steps to Reproduce:
1. install dkms and dkms-nvidia
2. upgrade the kernel
3. check /lib/modules/*/extra and /lib/modules/*/weak-updates

Actual results:
[root@husby ~]# find /lib/modules/*/weak-updates
/lib/modules/3.10.0-693.5.2.el7.x86_64/weak-updates
/lib/modules/3.10.0-693.5.2.el7.x86_64/weak-updates/nvidia-uvm.ko
/lib/modules/3.10.0-693.5.2.el7.x86_64/weak-updates/nvidia.ko
/lib/modules/3.10.0-693.5.2.el7.x86_64/weak-updates/nvidia-drm.ko
/lib/modules/3.10.0-693.5.2.el7.x86_64/weak-updates/nvidia-modeset.ko
/lib/modules/3.10.0-693.el7.x86_64/weak-updates
/lib/modules/3.10.0-693.el7.x86_64/weak-updates/lib
/lib/modules/3.10.0-693.el7.x86_64/weak-updates/lib/modules
/lib/modules/3.10.0-693.el7.x86_64/weak-updates/lib/modules/3.10.0-693.5.2.el7.x86_64
/lib/modules/3.10.0-693.el7.x86_64/weak-updates/lib/modules/3.10.0-693.5.2.el7.x86_64/nvidia-uvm.ko
/lib/modules/3.10.0-693.el7.x86_64/weak-updates/lib/modules/3.10.0-693.5.2.el7.x86_64/nvidia.ko
/lib/modules/3.10.0-693.el7.x86_64/weak-updates/lib/modules/3.10.0-693.5.2.el7.x86_64/nvidia-drm.ko
/lib/modules/3.10.0-693.el7.x86_64/weak-updates/lib/modules/3.10.0-693.5.2.el7.x86_64/nvidia-modeset.ko

[root@husby ~]# find /lib/modules/*/extra
/lib/modules/3.10.0-693.5.2.el7.x86_64/extra
/lib/modules/3.10.0-693.el7.x86_64/extra
/lib/modules/3.10.0-693.el7.x86_64/extra/nvidia-uvm.ko
/lib/modules/3.10.0-693.el7.x86_64/extra/nvidia.ko
/lib/modules/3.10.0-693.el7.x86_64/extra/nvidia-drm.ko
/lib/modules/3.10.0-693.el7.x86_64/extra/nvidia-modeset.ko

kernel 693 still has real modules in extra, but now also has a mess in weak-updates, and dkms status shows:

# dkms status
nvidia, 384.90, 3.10.0-693.5.2.el7.x86_64, x86_64: installed (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!)
nvidia, 384.90, 3.10.0-693.el7.x86_64, x86_64: installed

Later when kernel 693 is removed, the "extra" modules are not preserved and they disappear, breaking the weak-module links in other kernels.

Expected results:
[root@husby ~]# find /lib/modules/*/weak-updates
/lib/modules/3.10.0-693.5.2.el7.x86_64/weak-updates
/lib/modules/3.10.0-693.5.2.el7.x86_64/weak-updates/nvidia-uvm.ko
/lib/modules/3.10.0-693.5.2.el7.x86_64/weak-updates/nvidia.ko
/lib/modules/3.10.0-693.5.2.el7.x86_64/weak-updates/nvidia-drm.ko
/lib/modules/3.10.0-693.5.2.el7.x86_64/weak-updates/nvidia-modeset.ko
/lib/modules/3.10.0-693.el7.x86_64/weak-updates

[root@husby ~]# find /lib/modules/*/extra
/lib/modules/3.10.0-693.5.2.el7.x86_64/extra
/lib/modules/3.10.0-693.el7.x86_64/extra
/lib/modules/3.10.0-693.el7.x86_64/extra/nvidia-uvm.ko
/lib/modules/3.10.0-693.el7.x86_64/extra/nvidia.ko
/lib/modules/3.10.0-693.el7.x86_64/extra/nvidia-drm.ko
/lib/modules/3.10.0-693.el7.x86_64/extra/nvidia-modeset.ko

no weak-updates should exist for kernel 693 for the nvidia drivers.


Additional info:

Comment 1 Simone Caronni 2018-03-06 15:59:16 UTC
Hello, it seems you installed both the binary modules and the DKMS ones.

The binary modules are installed in weak-updates as they are being compiled with kABI support and can survive multiple kernel updates in binary form.

The DKMS ones are built and installed under extra.

Can you do this command on your system and paste it here?

# rpm -qa \*nvidia\* | sort