hello, Rusty:
I encountered a problem when modules compiled built-in with bzImage:
open-iscsi is an iSCSI software, it has a userspace daemon(iscsid) and
a userspace mani tool(iscsiadm) and a kernel module
(scsi_transport_iscsi),
recently the kernel module has been accepted into the official kernel
release; since the module licensed with GPL, it could be compiled as
built-in,
but when I compiled the module within the bzImage, the problem appeared:
tux ~ # iscsid -f
iscsid: Missing or Invalid version from
/sys/module/scsi_transport_iscsi/version. Make sure a up to date
scsi_transport_iscsi module is loaded and a up todate version of
iscsid is running. Exiting...
this is just because iscsid hope there's an external module could be
under /sys/module, and read the kernel module's version information,
but if the module compiled built-in, all its module information
discarded and it doesn't appeared under /sys/module/, that would break
iscsid.
Now the problem is:
Should we provide module information under
/sys/module/<module-name>/... even if the module compiled built-in
with bzImage?
Or just this module(scsi_transport_iscsi) should be marked with [M] only?
if the former solution is preferred, I would be happy to work on
MODULE_INFO-like macros improvements with CONFIG_MODULE undefined.
--
Denis
Vous m'avez dit r?cemment :
> hello, Rusty:
> I encountered a problem when modules compiled built-in with bzImage:
>
> open-iscsi is an iSCSI software, it has a userspace daemon(iscsid) and
> a userspace mani tool(iscsiadm) and a kernel module
> (scsi_transport_iscsi),
> recently the kernel module has been accepted into the official kernel
> release; since the module licensed with GPL, it could be compiled as
> built-in,
>
> but when I compiled the module within the bzImage, the problem appeared:
>
> tux ~ # iscsid -f
> iscsid: Missing or Invalid version from
> /sys/module/scsi_transport_iscsi/version. Make sure a up to date
> scsi_transport_iscsi module is loaded and a up todate version of
> iscsid is running. Exiting...
>
> this is just because iscsid hope there's an external module could be
> under /sys/module, and read the kernel module's version information,
> but if the module compiled built-in, all its module information
> discarded and it doesn't appeared under /sys/module/, that would break
> iscsid.
>
> Now the problem is:
>
> Should we provide module information under
> /sys/module/<module-name>/... even if the module compiled built-in
> with bzImage?
> Or just this module(scsi_transport_iscsi) should be marked with [M] only?
>
> if the former solution is preferred, I would be happy to work on
> MODULE_INFO-like macros improvements with CONFIG_MODULE undefined.
your userspace program is somewhat broken
the userspace should not expect to find the version number in
/sys/module, as this is used by the Linux kernel module subsystem. You
should provide the required information in another way such as a
/proc/ file (bad) or a /sys file (better, but no module stuff, this
has no business with it).
--
Mathieu
On Wednesday 16 January 2008 21:02:22 rae l wrote:
> hello, Rusty:
Hi Denis.
> Should we provide module information under
> /sys/module/<module-name>/... even if the module compiled built-in
> with bzImage?
Absolutely. Module parameters (should) already do that, for example.
> Or just this module(scsi_transport_iscsi) should be marked with [M] only?
>
> if the former solution is preferred, I would be happy to work on
> MODULE_INFO-like macros improvements with CONFIG_MODULE undefined.
I'd love to see patches. module_parm showed it's possible, if messy.
Thanks!
Rusty.
On Wed, Jan 16, 2008 at 06:02:22PM +0800, rae l wrote:
> hello, Rusty:
> I encountered a problem when modules compiled built-in with bzImage:
>
> open-iscsi is an iSCSI software, it has a userspace daemon(iscsid) and
> a userspace mani tool(iscsiadm) and a kernel module
> (scsi_transport_iscsi),
> recently the kernel module has been accepted into the official kernel
> release; since the module licensed with GPL, it could be compiled as
> built-in,
>
> but when I compiled the module within the bzImage, the problem appeared:
>
> tux ~ # iscsid -f
> iscsid: Missing or Invalid version from
> /sys/module/scsi_transport_iscsi/version. Make sure a up to date
> scsi_transport_iscsi module is loaded and a up todate version of
> iscsid is running. Exiting...
>
> this is just because iscsid hope there's an external module could be
> under /sys/module, and read the kernel module's version information,
> but if the module compiled built-in, all its module information
> discarded and it doesn't appeared under /sys/module/, that would break
> iscsid.
>
> Now the problem is:
>
> Should we provide module information under
> /sys/module/<module-name>/... even if the module compiled built-in
> with bzImage?
> Or just this module(scsi_transport_iscsi) should be marked with [M] only?
>
> if the former solution is preferred, I would be happy to work on
> MODULE_INFO-like macros improvements with CONFIG_MODULE undefined.
I recall Magnus Damm did something in this respect.
Try to google a bit and see if you hit something that
can be used as inspiration.
I was maybe only for module parameters (autoparm was the name I think).
It is not a perfect fit but maybe a help.
Sam
On Wednesday 16 January 2008 22:58:09 Mathieu SEGAUD wrote:
> your userspace program is somewhat broken
> the userspace should not expect to find the version number in
> /sys/module, as this is used by the Linux kernel module subsystem. You
> should provide the required information in another way such as a
> /proc/ file (bad) or a /sys file (better, but no module stuff, this
> has no business with it).
Shh! He was going to implement a feature we want!
To be honest, I think his expectations of consistency are correct: if a
version number makes sense, surely it makes sense for builtins as well.
Thanks,
Rusty.
Vous m'avez dit r?cemment :
> On Wednesday 16 January 2008 22:58:09 Mathieu SEGAUD wrote:
>> your userspace program is somewhat broken
>> the userspace should not expect to find the version number in
>> /sys/module, as this is used by the Linux kernel module subsystem. You
>> should provide the required information in another way such as a
>> /proc/ file (bad) or a /sys file (better, but no module stuff, this
>> has no business with it).
>
> Shh! He was going to implement a feature we want!
>
> To be honest, I think his expectations of consistency are correct: if a
> version number makes sense, surely it makes sense for builtins as well.
yep, I did not look out the way he suggested to do it; and sure that
is a cool feature. sorry for that one. Sometimes it's difficult to
part what should be done _in_ the kernel, what should be done _by_ the
kernel, and userspace.
thanks a lot
--
Mathieu