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

Saurabh Mohan saurabh at cplanenetworks.com
Thu Oct 15 23:52:06 UTC 2015


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


>



More information about the dev mailing list