guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#45692] kernel-module-configuration-service for configuring kernel p


From: raid5atemyhomework
Subject: [bug#45692] kernel-module-configuration-service for configuring kernel parameters
Date: Thu, 07 Jan 2021 00:04:02 +0000

Hello Danny,


> See also https://issues.guix.info/issue/42193 for an earlier attempt (which
> is already very far--but it has a bug somewhere). There's also already a
> kernel profile thing like you wrote in that patchset.
> (Note that I would prefer there not to be a "LOAD?" in there because it
> confuses loading the module (which is usually NOT started by user space
> but by the kernel on its own) and confguring the module (which has to be
> done by user space because it's specifying policy, not mechanism))

Looks like that patchset was merged in, so basically I can just depend on that? 
So the first patch in this patchset would be dropped?

> But I guess the ZFS Linux kernel module can't be built-in into the kernel
> anyway.
>
> But that's a special case--in general, it's very much possible to make modules
> built-in.

ZFS *can* be built-in to the kernel, Ubuntu does it. You can't distribute it 
like that (Ubuntu distributes it like that but presumably they have enough 
lawyers to muddy the waters so that they can get away with it), but as the 
documentation in this patch notes: the user has every right to do whatever they 
want on the machine they own, including build a Linux kernel that has ZFS 
built-in and run it, they just can't make that version available to somebody 
else.

So to go whole-hog, we would have a service that replaces the kernel package 
and inserts kernel module sources in-tree somehow, then compiles Linux-libre on 
the user's machine. That would probably be a lot more painful to install ZFS 
with (the user has to recompile the whole kernel at each update of either 
kernel or ZFS, whereas with a kernel module the user has to recompile just the 
kernel module), so maybe kernel module is still better overall.


> > -                       ;; You'd think we could've used 
> > kernel-module-loader-service-type,
> >
> >
>
> Definitely.
>
> > -                       ;; but the kernel-module-loader shepherd service is 
> > dependent on
> >
> >
> > -                       ;; file-systems,
> >
> >
>
> Yes--but why is that dependent on 'file-systems ? Is it because it needs 
> /proc ?
> Or is it an oversight ? I would prefer to get rid of this dependency and then
> use kernel-module-loader-service-type.

Dunno --- one VM I tested, I removed the `zfs-scan-automount` shepherd service 
from the `file-systems` target, and the VM still wouldn't boot, claiming a 
stack overflow (the same error which I got when I was still trying to use 
kernel-module-loader-service-type here).  Or maybe I just got confused with 
which VM was which, testing VMs wasn't a stress-free vacation.  I just want 
ZFS, because MD RAID5 ate my homework, this is getting tiresome...

One thing I notice about `kernel-module-loader-service-type` is that it's not 
instantiated in essential services, or indeed anywhere in Guix.  A few services 
*do* extend it.  But my **very rough** understanding is that if you're going to 
extend a service, it had better be instantiated *once* in the list of services.

In particular I note that the documentation for 
`kernel-module-loader-service-type` shows an example where it uses `service` to 
program the `kernel-module-loader-service-type`, not `simple-service`.  This 
suggests to me that `kernel-module-loader-service-type` is broken because it's 
not in the list of essential services but is extensible.  Maybe.  It's designed 
as an extensible service, but isn't instantiated at default.  Maybe that's what 
really bit me and not the shepherd circular dependency loop? *shrug*


>
> Also, this manual loading of kernel modules is not supposed to be the way to
> do things in Linux. That a kernel module was compiled as a module is
> an implementation detail--so Linux should (and usually does) automatically
> load kernel modules the first time a device for them is accessed (after all,
> how would user space know whether something is compiled as a module or
> built-in--that would be too much to ask).

So how do I get ZFS loaded? Note that the devices it targets are block devices 
and it needs to scan for block devices that are formatted for ZFS.  Do other 
filesystems have some autoload rule?

Thanks
raid5atemyhomework





reply via email to

[Prev in Thread] Current Thread [Next in Thread]