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

Saurabh Mohan saurabh at cplanenetworks.com
Fri Oct 16 20:55:59 UTC 2015


On 10/16/2015 11:32 AM, Ansis Atteka wrote:
> 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.
>
thanks.

> 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.

I am on Ubuntu 14.04 LTS also.

>
> Thanks, for reporting and proposing solution to this problem!
>



More information about the dev mailing list