Re: [PATCH] vhost/vsock: specify module version
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2024-09-29 17:48:47
Also in:
kvm, lkml, virtualization
On Sun, Sep 29, 2024 at 07:35:35PM +0200, Aleksandr Mikhalitsyn wrote:
On Sun, Sep 29, 2024 at 6:56 PM Michael S. Tsirkin [off-list ref] wrote:quoted
On Thu, Sep 26, 2024 at 06:16:40PM +0200, Alexander Mikhalitsyn wrote:quoted
Add an explicit MODULE_VERSION("0.0.1") specification for a vhost_vsock module. It is useful because it allows userspace to check if vhost_vsock is there when it is configured as a built-in. Without this change, there is no /sys/module/vhost_vsock directory. With this change: $ ls -la /sys/module/vhost_vsock/ total 0 drwxr-xr-x 2 root root 0 Sep 26 15:59 . drwxr-xr-x 100 root root 0 Sep 26 15:59 .. --w------- 1 root root 4096 Sep 26 15:59 uevent -r--r--r-- 1 root root 4096 Sep 26 15:59 version Signed-off-by: Alexander Mikhalitsyn <redacted>Dear Michael,quoted
Why not check that the misc device is registered?It is possible to read /proc/misc and check if "241 vhost-vsock" is there, but it means that userspace needs to have a specific logic for vsock. At the same time, it's quite convenient to do something like: if [ ! -d /sys/modules/vhost_vsock ]; then modprobe vhost_vsock fiquoted
I'd rather not add a new UAPI until actually necessary.I don't insist. I decided to send this patch because, while I was debugging a non-related kernel issue on my local dev environment I accidentally discovered that LXD (containers and VM manager) fails to run VMs because it fails to load the vhost_vsock module (but it was built-in in my debug kernel and the module file didn't exist). Then I discovered that before trying to load a module we check if /sys/module/<module name> exists. And found that, for some reason /sys/module/vhost_vsock does not exist when vhost_vsock is configured as a built-in, and /sys/module/vhost_vsock *does* exist when vhost_vsock is loaded as a module. It looks like an inconsistency and I also checked that other modules in drivers/vhost have MODULE_VERSION specified and version is 0.0.1. I thought that this change looks legitimate and convenient for userspace consumers. Kind regards, Alex
I'll ask you to put this explanation in the commit log, and I'll pick this up.
quoted
quoted
--- drivers/vhost/vsock.c | 1 + 1 file changed, 1 insertion(+)diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c index 802153e23073..287ea8e480b5 100644 --- a/drivers/vhost/vsock.c +++ b/drivers/vhost/vsock.c@@ -956,6 +956,7 @@ static void __exit vhost_vsock_exit(void) module_init(vhost_vsock_init); module_exit(vhost_vsock_exit); +MODULE_VERSION("0.0.1"); MODULE_LICENSE("GPL v2"); MODULE_AUTHOR("Asias He"); MODULE_DESCRIPTION("vhost transport for vsock "); --2.34.1