RHEL 9 kmod-kvdo

The kmod-kvdo module is used to enable VDO in kernel usespace. On RHEL it’s primarily used to thin provision logical volumes with LVM. See the links below.

Install & enable kvdo

Install kmod-kvdo:

dnf install -y kmod-kvdo

Enable kernel module kvdo with:

modprobe -v kvdo

Under normal conditions, this works to install and enable the kvdo module for RHEL, but as I’ve shown below, it’s broken for RHEL 9.6.

RHEL 9.6 kmod-kvdo bug

There was a bug opened that was closed as resolved for enabling kvdo for the RHEL 9.6 kernel:

But, I’ve found this bug is still unresolved in the latest version of RHEL 9.6.

I tried opening a new bug, but I don’t have access to the RHEL project in Jira, so I opened a developer feedback ticket:

Hopefully this get’s to the right place!

According to the Red Hat Bugzilla - Migrated Products page I’m supposed to be able to submit bug reports for RHEL 7/8/9 in Jira now. Do I need to submit a bug report about not being able to submit bug reports? If any Red Hat engineers happen upon this, let me know!

Steps to reproduce

  1. Install or update to RHEL 9.6
dnf update -y

Verify RHEL release and kernel release. A reboot may be necessary to load the latest kernel.

[root@rhel9b ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 9.6 (Plow)

The system should be on the latest kernel release, 5.14.0-570.30.1.el9_6, as of this writing.

[root@rhel9b ~]# uname -r
5.14.0-570.30.1.el9_6.x86_64
  1. Install kmod-kvdo which provides the kvdo kernel module
dnf install -y kmod-kvdo

Note the version of kmod-kvdo that’s installed:

[root@rhel9b ~]# rpm -q kmod-kvdo
kmod-kvdo-8.2.5.10-161.el9.x86_64
  1. Attempt to enable the kvdo kernel module:
[root@rhel9b ~]# modprobe kvdo
modprobe: FATAL: Module kvdo not found in directory /lib/modules/5.14.0-570.30.1.el9_6.x86_64

Additional notes

One interesting thing I noticed while troubleshooting is that the kmod-kvdo package appears to have been compiled against the 5.14.0-568 kernel release:

[root@rhel9b ~]# rpm -ql kmod-kvdo
/etc/depmod.d/kvdo.conf
/lib/modules/5.14.0-568.el9.x86_64
/lib/modules/5.14.0-568.el9.x86_64/extra
/lib/modules/5.14.0-568.el9.x86_64/extra/kmod-kvdo
/lib/modules/5.14.0-568.el9.x86_64/extra/kmod-kvdo/vdo
/lib/modules/5.14.0-568.el9.x86_64/extra/kmod-kvdo/vdo/kvdo.ko

Note the /lib/modules/ path.

This doesn’t match the installed kernel:

[root@rhel9b ~]# rpm -q kernel-core
kernel-core-5.14.0-362.8.1.el9_3.x86_64
kernel-core-5.14.0-570.30.1.el9_6.x86_64
[root@rhel9b ~]# uname -r
5.14.0-570.30.1.el9_6.x86_64

In fact, there doesn’t appear to be a 5.14.0-568 kernel release available in the base repositories:

[root@rhel9b ~]# dnf repoquery kernel-core-5.14.0-568*
Updating Subscription Management repositories.

This system has release set to 9.6 and it receives updates only for this release.

Last metadata expiration check: 0:40:22 ago on Sun 03 Aug 2025 03:48:53 AM UTC.
[root@rhel9b ~]# 

Workaround - build from source

Building from source seems to be a viable workaround until the Red Hat engineers have had a chance to fix the bug or an update to a newer release with the bug fixed becomes available.

  1. Fetch the latest source tar ball from the dm-vdo/kvdo/release.
wget https://github.com/dm-vdo/kvdo/archive/refs/tags/8.2.6.5.tar.gz
  1. Untar the tarball
[root@rhel9b ~]# tar xf 8.2.6.5.tar.gz 
  1. Compile and install
cd kvdo-8.2.6.5/

make

make -C /usr/src/kernels/`uname -r` M=`pwd`

Install

make -C /usr/src/kernels/`uname -r` M=`pwd` modules_install
  1. Enable kernel module
modprobe kvdo

Verify that it’s enabled:

[root@rhel9b kvdo-8.2.6.5]# lsmod | grep ^kvdo
kvdo                  860160  0
  1. (Optional) Enable kvdo persistently across reboots
echo kvdo > /etc/modules-load.d/kvdo.conf