[vdo-devel] kmod-kvdo in Centos 8 not built with dkms

Andrew Walsh awalsh at redhat.com
Wed Jan 27 22:17:17 UTC 2021


Hi Sverker,

First, thanks for reaching out to us to discuss this issue.  Comments
inline.

On Wed, Jan 27, 2021 at 4:50 PM Sverker Abrahamsson <sverker at limetransit.com>
wrote:

> Hi,
> I ran into the issue that kmod-kvdo rpm in Centos 8 that it has modules
> built for a specific kernel which is of course not matching the running
> kernel. It doesn't even set dependency on rpm level to the kernel it
> does work with.
>

I want to just confirm.  This is CentOS 8 and not CentOS Stream 8, right?
I know we had a similar issue to this in Stream that should be resolved,
but want to make sure that I can take a look into what the situation is on
CentOS 8.

The dependency on the kmod-kvdo.spec should specifically be setting the
minimum kernel that can be used with that particular NVR.  For example, if
you are using kmod-kvdo-6.2.3.114-74.el8, the minimum kernel you *must*
have for it is kernel-4.18.0-228.el8.  We can't set an upper bound on this,
because, to put it simply, I don't know when there might be a symbol that
changes which would trigger a module incompatibility.

If you're encountering something that doesn't line up with the above logic,
I'd like to know more about your environment.  Package versions are
important here for tracking down what might be going on in that situation.
We work hard to ensure that a particular kernel that requires a kmod-kvdo
update doesn't go out without both packages being available, but as I
mentioned, we had a similar situation in Stream that I intended to address
but it slipped through.  It could just be another occurrence of that same
event.


>
> [root at nginx-centos8 sverker]# modprobe kvdo
> modprobe: FATAL: Module kvdo not found in directory
> /lib/modules/4.18.0-240.1.1.el8_3.x86_64
> [root at nginx-centos8 sverker]# rpm -ql kmod-kvdo
> /etc/depmod.d/kvdo.conf
> /lib/modules/4.18.0-187.el8.x86_64
> /lib/modules/4.18.0-187.el8.x86_64/extra
> /lib/modules/4.18.0-187.el8.x86_64/extra/kmod-kvdo
> /lib/modules/4.18.0-187.el8.x86_64/extra/kmod-kvdo/uds
> /lib/modules/4.18.0-187.el8.x86_64/extra/kmod-kvdo/uds/uds.ko
> /lib/modules/4.18.0-187.el8.x86_64/extra/kmod-kvdo/vdo
> /lib/modules/4.18.0-187.el8.x86_64/extra/kmod-kvdo/vdo/kvdo.ko
> /usr/lib/.build-id
> /usr/lib/.build-id/13
> /usr/lib/.build-id/13/4cb380830e58755bdc32cc09718f78132ab9fa
> /usr/lib/.build-id/6f
> /usr/lib/.build-id/6f/eaf669b5109338ae1625a67e066ce03b3d1fef
> /usr/share/doc/kmod-kvdo/greylist.txt
>
> I solved it by cloning the git repo and build a rpm from there, which
> uses dkms to compile the modules. Works like a charm.
>

That's great to hear that it works for you.


>
> Is there any specific reason why the rpm in Centos 8 doesn't support dkms?
>

The primary driver for this is the fact that the CentOS RPMs are derived
from the RHEL sources.  DKMS is not part of the Red Hat offering for RHEL;
it is provided in EPEL.  With VDO being provided in @base, we can't rely on
a package that isn't available.

Instead, we rely on kmod, which relies on the fact that kernel kABI should
be maintained.  Occasionally, a symbol that is needed for kmod-kvdo to load
will have a signature that changes.  As a result, we end up having to do a
rebuild of kmod-kvdo to work with the newer symbols.  It is at this point
that we bump the Release field and minimum kernel requirement in the spec
file.

kmod will do similar things as dkms, in that it will provide a symlink into
the appropriate /lib/modules/kernel* directories that it is compatible
with.  It just won't rebuild when a kernel is running and is incompatible.


>
> Best regards
> Sverker
>
> _______________________________________________
> vdo-devel mailing list
> vdo-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/vdo-devel


If you have any further questions, comments, or suggestions please send
them along.

Thanks again for your reporting.

Andy Walsh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vdo-devel/attachments/20210127/a3c13793/attachment.htm>


More information about the vdo-devel mailing list