Re: dracut is too "clever" at identifying modules to exclude.

2015-12-15 Thread NeilBrown
On Fri, Nov 13 2015, Harald Hoyer wrote:

> On 13.11.2015 13:37, Harald Hoyer wrote:
>> On 12.10.2015 22:30, Neil Brown wrote:
>>> Harald Hoyer  writes:
>>>
 On 12.10.2015 05:02, Neil Brown wrote:
>
> If I have booted a kernel with md/raid built in (no modules) and
> I use dracut to build the initramfs for a different kernel which
> has the md code compiled as separate modules, then it does not include
> the required md modules in the initramfs.
>
> As a particular instance this happen when the root filesystem is on
> RAID0.  The 'raid0.ko' module is not included and boot fails.
>
> https://bugzilla.opensuse.org/show_bug.cgi?id=935993
>
> This only happens when 'host-only' is selected (which is the default for
> openSUSE).
>
> the modules.d/90mdraid/module-setup.sh code calls
>
> instmods =drivers/md
>
> instmods calls
>module_is_host_only "raid0"
> and this incorrectly fails.
>
> If raid0.ko didn't have any alias this would succeed, but it does.
>
> $ modinfo -F alias raid0
> md-level-0
> md-raid0
> md-personality-2

 Huh? Is the module not loaded?
>>>
>>> No, because the running kernel has "md/raid built in (no modules)".
>>>
>>> Thanks,
>>> NeilBrown
>>>

>
> However these aliases don't appear in any modalias file in /sys/devices,
> in /proc/crypto, or in /proc/modules.
>
> Maybe you could parse /proc/mdstat..
>
> if [ -f /proc/mdstat ]; then
>   while read _d _c _a _m _x; do
>if [ "$_c" = ':' -a "$_a" = 'active' ]; then
>   host_modalias["md-$_m"]=1
>fi
>   done < /proc/mdstat
> fi
>
> but it all seems rather fragile.  There are probably other modules that
> might miss out accidentally. dm?
>
> Do we really need the host_modalias stuff?
>
> Thanks,
> NeilBrown
>
>> 
>> Interesting... so we have to blow up the initramfs with the entire drivers/md
>> in the case, where you switch from "compiled in" to "not compiled in"..
>> 
>> I guess that happens not that often, so better be safe than sorry.
>
> remove host_modalias
>
> 

Thanks a lot for resolving this!

NeilBrown


signature.asc
Description: PGP signature


Re: dracut is too "clever" at identifying modules to exclude.

2015-11-13 Thread Harald Hoyer
On 13.11.2015 13:37, Harald Hoyer wrote:
> On 12.10.2015 22:30, Neil Brown wrote:
>> Harald Hoyer  writes:
>>
>>> On 12.10.2015 05:02, Neil Brown wrote:

 If I have booted a kernel with md/raid built in (no modules) and
 I use dracut to build the initramfs for a different kernel which
 has the md code compiled as separate modules, then it does not include
 the required md modules in the initramfs.

 As a particular instance this happen when the root filesystem is on
 RAID0.  The 'raid0.ko' module is not included and boot fails.

 https://bugzilla.opensuse.org/show_bug.cgi?id=935993

 This only happens when 'host-only' is selected (which is the default for
 openSUSE).

 the modules.d/90mdraid/module-setup.sh code calls

 instmods =drivers/md

 instmods calls
module_is_host_only "raid0"
 and this incorrectly fails.

 If raid0.ko didn't have any alias this would succeed, but it does.

 $ modinfo -F alias raid0
 md-level-0
 md-raid0
 md-personality-2
>>>
>>> Huh? Is the module not loaded?
>>
>> No, because the running kernel has "md/raid built in (no modules)".
>>
>> Thanks,
>> NeilBrown
>>
>>>

 However these aliases don't appear in any modalias file in /sys/devices,
 in /proc/crypto, or in /proc/modules.

 Maybe you could parse /proc/mdstat..

 if [ -f /proc/mdstat ]; then
   while read _d _c _a _m _x; do
if [ "$_c" = ':' -a "$_a" = 'active' ]; then
   host_modalias["md-$_m"]=1
fi
   done < /proc/mdstat
 fi

 but it all seems rather fragile.  There are probably other modules that
 might miss out accidentally. dm?

 Do we really need the host_modalias stuff?

 Thanks,
 NeilBrown

> 
> Interesting... so we have to blow up the initramfs with the entire drivers/md
> in the case, where you switch from "compiled in" to "not compiled in"..
> 
> I guess that happens not that often, so better be safe than sorry.

remove host_modalias


--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: dracut is too "clever" at identifying modules to exclude.

2015-11-13 Thread Harald Hoyer
On 12.10.2015 22:30, Neil Brown wrote:
> Harald Hoyer  writes:
> 
>> On 12.10.2015 05:02, Neil Brown wrote:
>>>
>>> If I have booted a kernel with md/raid built in (no modules) and
>>> I use dracut to build the initramfs for a different kernel which
>>> has the md code compiled as separate modules, then it does not include
>>> the required md modules in the initramfs.
>>>
>>> As a particular instance this happen when the root filesystem is on
>>> RAID0.  The 'raid0.ko' module is not included and boot fails.
>>>
>>> https://bugzilla.opensuse.org/show_bug.cgi?id=935993
>>>
>>> This only happens when 'host-only' is selected (which is the default for
>>> openSUSE).
>>>
>>> the modules.d/90mdraid/module-setup.sh code calls
>>>
>>> instmods =drivers/md
>>>
>>> instmods calls
>>>module_is_host_only "raid0"
>>> and this incorrectly fails.
>>>
>>> If raid0.ko didn't have any alias this would succeed, but it does.
>>>
>>> $ modinfo -F alias raid0
>>> md-level-0
>>> md-raid0
>>> md-personality-2
>>
>> Huh? Is the module not loaded?
> 
> No, because the running kernel has "md/raid built in (no modules)".
> 
> Thanks,
> NeilBrown
> 
>>
>>>
>>> However these aliases don't appear in any modalias file in /sys/devices,
>>> in /proc/crypto, or in /proc/modules.
>>>
>>> Maybe you could parse /proc/mdstat..
>>>
>>> if [ -f /proc/mdstat ]; then
>>>   while read _d _c _a _m _x; do
>>>if [ "$_c" = ':' -a "$_a" = 'active' ]; then
>>>   host_modalias["md-$_m"]=1
>>>fi
>>>   done < /proc/mdstat
>>> fi
>>>
>>> but it all seems rather fragile.  There are probably other modules that
>>> might miss out accidentally. dm?
>>>
>>> Do we really need the host_modalias stuff?
>>>
>>> Thanks,
>>> NeilBrown
>>>

Interesting... so we have to blow up the initramfs with the entire drivers/md
in the case, where you switch from "compiled in" to "not compiled in"..

I guess that happens not that often, so better be safe than sorry.
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: dracut is too "clever" at identifying modules to exclude.

2015-10-12 Thread Neil Brown
Harald Hoyer  writes:

> On 12.10.2015 05:02, Neil Brown wrote:
>> 
>> If I have booted a kernel with md/raid built in (no modules) and
>> I use dracut to build the initramfs for a different kernel which
>> has the md code compiled as separate modules, then it does not include
>> the required md modules in the initramfs.
>> 
>> As a particular instance this happen when the root filesystem is on
>> RAID0.  The 'raid0.ko' module is not included and boot fails.
>> 
>> https://bugzilla.opensuse.org/show_bug.cgi?id=935993
>> 
>> This only happens when 'host-only' is selected (which is the default for
>> openSUSE).
>> 
>> the modules.d/90mdraid/module-setup.sh code calls
>> 
>> instmods =drivers/md
>> 
>> instmods calls
>>module_is_host_only "raid0"
>> and this incorrectly fails.
>> 
>> If raid0.ko didn't have any alias this would succeed, but it does.
>> 
>> $ modinfo -F alias raid0
>> md-level-0
>> md-raid0
>> md-personality-2
>
> Huh? Is the module not loaded?

No, because the running kernel has "md/raid built in (no modules)".

Thanks,
NeilBrown

>
>> 
>> However these aliases don't appear in any modalias file in /sys/devices,
>> in /proc/crypto, or in /proc/modules.
>> 
>> Maybe you could parse /proc/mdstat..
>> 
>> if [ -f /proc/mdstat ]; then
>>   while read _d _c _a _m _x; do
>>if [ "$_c" = ':' -a "$_a" = 'active' ]; then
>>   host_modalias["md-$_m"]=1
>>fi
>>   done < /proc/mdstat
>> fi
>> 
>> but it all seems rather fragile.  There are probably other modules that
>> might miss out accidentally. dm?
>> 
>> Do we really need the host_modalias stuff?
>> 
>> Thanks,
>> NeilBrown
>> 


signature.asc
Description: PGP signature