[ovs-dev] [PATCH ] debian: place kernel module to satisfy depmod search.

Ansis Atteka aatteka at nicira.com
Fri Oct 16 18:32:34 UTC 2015


On Thu, Oct 15, 2015 at 4:52 PM, Saurabh Mohan
<saurabh at cplanenetworks.com> wrote:
> On 10/15/2015 01:55 PM, Ansis Atteka wrote:
>>
>> On Wed, Oct 14, 2015 at 5:33 PM, Saurabh Mohan
>> <saurabh at cplanenetworks.com> wrote:
>>>
>>> On 10/14/2015 04:58 PM, Ansis Atteka wrote:
>>>>
>>>>
>>>> On Wed, Oct 14, 2015 at 4:08 PM, Ben Pfaff <blp at nicira.com> wrote:
>>>>>
>>>>>
>>>>> On Wed, Oct 14, 2015 at 03:28:24PM -0700, Joe Stringer wrote:
>>>>>>
>>>>>>
>>>>>> On 14 October 2015 at 15:21, Ben Pfaff <blp at nicira.com> wrote:
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Oct 06, 2015 at 04:35:32PM -0700, Saurabh Mohan wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> On Ubuntu depmod's search priority is configured in /etc/depmod to
>>>>>>>> be
>>>>>>>> updates and then the kernel built-in directory.
>>>>>>>> $ cat /etc/depmod.d/ubuntu.conf
>>>>>>>> search updates ubuntu built-in
>>>>>>>>
>>>>>>>> Thus change the placement of openvswitch.ko under updates/ not
>>>>>>>> kernel/updates.
>>>>>>>>
>>>>>>>> Signed-off-by: Saurabh Mohan <saurabh at cplanenetworks.com>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> This appears to be correct, but I'm confused about how this could
>>>>>>> have
>>>>>>> not been noticed for years.  Did something change recently?
>>>>>>
>>>>>>
>>>>>>
>>>>>> We recently changed it from kernel/ to kernel/updates (prior to v2.4
>>>>>> release), and the commit message suggests it was previously
>>>>>> nondeterministic:
>>>>>>
>>>>>> commit b519432205c36bda5c7331f77a49eaaa919967ad
>>>>>> Author: Ansis Atteka <aatteka at nicira.com>
>>>>>> Date:   Tue May 26 16:49:49 2015 -0700
>>>>>>
>>>>>>       debian: install openvswitch kernel module under "updates"
>>>>>> directory
>>>>>>
>>>>>>       This patch fixes a bug where "modprobe openvswitch" command on
>>>>>> Ubuntu
>>>>>>       distribution would have sometimes tried to load OVS kernel
>>>>>> module
>>>>>> that
>>>>>>       shipped together with Linux Kernel, even though one had also
>>>>>> installed
>>>>>>       OVS datapath debian package created with module-assistant.
>>>>>> Because
>>>>>> of
>>>>>>       this issue force-reload-kmod command occasionally malfunctioned
>>>>>> and
>>>>>>       failed to load the right kernel module.
>>>>>>
>>>>>>       This bug happened *occasionally* because the default Ubuntu
>>>>>> depmod
>>>>>>       configuration in /etc/depmod.d/ubuntu.conf is set to look for
>>>>>> kernel
>>>>>>       modules first in "updates" directory, then in "ubuntu" directory
>>>>>> and
>>>>>>       then in other directories.  If there were two openvswitch.ko
>>>>>> modules
>>>>>>       in "other directories", then modprobe would have loaded kernel
>>>>>>       module that was nondeterministically listed first by file
>>>>>> system.
>>>>>
>>>>>
>>>>>
>>>>> OK, I understand why it was nondeterministic before, but where does
>>>>> kernel/updates come in then, since it seems to be different from and
>>>>> not
>>>>> as high-priority as "updates"?  Does anyone know?
>>>>
>>>>
>>>>
>>>> I am still trying to find the answer in my email history why I ended
>>>> up using "kernel/updates" over "updates".
>>>>
>>>> Saurabh, did you encounter an issue where the wrong kernel module was
>>>> loaded or is this to achieve conformance?
>>>>
>>>
>>> Anis, we tried using this  patch but still noticed that the wrong kernel
>>> module was getting selected. The only way to fix it was
>>> to put the module outside kernel/ directory.
>>
>>
>>
>> Can you give me locations of all ovs kernel modules (dkms,
>> module-assistant and the one that came with linux) present in
>> /lib/modules/<linux_version>/ on your system that was having trouble?
>>
> root at test01-1:/lib/modules# find . -name openvswitch.ko -print
> ./3.13.0-32-generic/kernel/net/openvswitch/openvswitch.ko
> ./3.13.0-32-generic/updates/openvswitch.ko
>
>> I am just wondering why my patch prioritized module-assistant created
>> kernel module (in kernel/updates) over the one that comes with linux
>> kernel itself. I guess this is the problem you are seeing here again,
>> right?
>
> yes, we were seeing the same problem.
> my observation was that if we put the module under directory
> <kernel>/updates then depmod would still select
> <kernel>/net/openvswitch/openvswitch.ko

Ok, give me some time to test this on Debian as well, because IIRC
Debian does not have /etc/depmod.conf file and I am not sure what is
the exact depmod logic there. Assuming it will work there I will push
your patch.

Also, what Ubuntu distribution are you on? I remember that my patch
allegedly helped to solve the undeterministic kernel loading behavior
on Ubuntu 14.04.

Thanks, for reporting and proposing solution to this problem!



More information about the dev mailing list