[dm-devel] LVM gives "modprobe" errors on non-modular monolithic Linux kernels

Ivan Zahariev famzah at icdsoft.com
Wed Mar 15 07:21:59 UTC 2017


Hi guys,

Is this more work than simply exporting a "version" in every 
"dm_cache_*" module, in order for it to have a "/sys/module" path entry?

Should I file a bug regarding this?

Best regards.
--Ivan


On 13.3.2017 г. 14:15 ч., Ivan Zahariev wrote:
> Hello,
>
> Here is an example of the problem:
>
>    # lvconvert --yes --type cache --cachepolicy smq --cachepool
>    vg0/lv_cache_s188-vp vg0/s188
>
>    modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could
>    not open moddep file '/lib/modules/4.4.30-grsec/modules.dep.bin'
>       /sbin/modprobe failed: 1
>
>
> Strace shows that "lvconvert" calls "modprobe" because it can't find 
> some paths in "/sys/module":
>
>  * /sys/module/dm_cache_smq
>  * /sys/module/dm_cache_mq
>
>
> At the same time, these modules are already in the kernel. Here is a 
> proof:
>
>    root at sm-srv228:~# zgrep -i cache /proc/config.gz |grep -i dm
>    CONFIG_DM_CACHE=y
>    CONFIG_DM_CACHE_MQ=y
>    CONFIG_DM_CACHE_SMQ=y
>    CONFIG_DM_CACHE_CLEANER=y
>
>
> So the real problem is that the modules are compiled in the monolithic 
> kernel but are not seen in "/sys/module". At the same time, even with 
> a monolithic kernel, some modules do have their corresponding 
> directories in "/sys/module", like the "dm_cache" module, for example:
>
>    root at sm-srv228:~# find /sys/module/dm_cache -type f
>    /sys/module/dm_cache/parameters/cache_copy_throttle
>
>
> My naive research concluded that non-modular monolithic Linux kernels 
> export the compiled-in modules in "/sys/module" only if one of the 
> following is true:
>
>  * the kernel module exports any parameters in the
>    "/sys/module/$module/parameters" directory
>  * or the kernel module has a "version" file 
> "/sys/module/$module/version"
>
>
> In a nutshell, please export a "version" of all "dm_cache_*" modules, 
> so that even in monolithic Linux kernels we can have a directory in 
> "/sys/module" for them. This way the LVM2 tools won't give out 
> sporadic "modprobe" errors when ran on monolithic Linux kernels.
>
> Does all this make sense? Is the patch something trivial which we can 
> backport into our custom 4.4.30 Linux kernel?
>
> Thanks.
> --Ivan

-- 
*Ivan Zahariev*
Head of Linux Engineering and Operations
www.icdsoft.com <http://www.icdsoft.com>




More information about the dm-devel mailing list