Bug 8985 - bonding: mode parameter does not appear in kernel
Summary: bonding: mode parameter does not appear in kernel
Status: CLOSED PATCH_ALREADY_AVAILABLE
Alias: None
Product: Networking
Classification: Unclassified
Component: Other (show other bugs)
Hardware: All Linux
: P1 high
Assignee: Willy Tarreau
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-09-06 09:03 UTC by Justin R. Davis
Modified: 2007-09-08 10:30 UTC (History)
0 users

See Also:
Kernel Version: 2.4.35.1
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
.config file (20.96 KB, application/octet-stream)
2007-09-06 10:50 UTC, Justin R. Davis
Details

Description Justin R. Davis 2007-09-06 09:03:22 UTC
Most recent kernel where this bug did not occur: 2.4.34.5

Distribution:  Debian (but custom built kernel)

Hardware Environment: x86

Software Environment:

Problem Description:

Upon upgrading from a custom built 2.4.34.5 kernel to a 2.4.35.1 one, we've
ran into a major problem with the bonding.o module.  Upon loading this
module, we now see an error something to the effect of "mode parameter does not appear in kernel".  As such, the bonding module stays in default mode of round robin (which is not what we want) and then spews out the following (somewhat expected) error:

bonding: Warning: either miimon or arp_interval and arp_ip_target module parameters must be specified, otherwise bonding will not detect link failures! see bonding.txt for details.

even though we are calling it with the supposedly missing information:

alias bond0 bonding
options bond0 mode=active-backup miimon=100 primary=eth1 max_bonds=2

Now is where it gets interesting.  If, instead of loading the bonding.o
module built from 2.4.35.1, I load the module built from 2.4.34.5 into
the running 2.4.35.1 kernel, the module works fine, no errors.  Seeming
to imply that nothing has changed in the core kernel itself, I diff'ed
the working:
    linux-2.4.34.5/drivers/net/bonding
with the not working
    linux-2.4.35.1/drivers/net/bonding

The .c, .h Makefile and .depend are all the same.  The .o's are different (as expected).  The only files which were different were:

-rw-r--r--  1 root root    552 Jul 22 12:20 .bond_3ad.o.flags
-rw-r--r--  1 root root    552 Jul 22 12:20 .bond_alb.o.flags
-rw-r--r--  1 root root    554 Jul 22 12:20 .bond_main.o.flags
-rw-r--r--  1 root root    158 Jul 22 12:20 .bonding.o.flags

In these files, the same difference in flags existed in each:
         Flag               2.4.34.5     2.4.35.1   
                           (working)     (not working)
   -fno-builtin-strpbrk      No            Yes
   -fno-unit-at-a-time       Yes           No

The 2.4.35.1 version was built with the .config file from the 2.4.34.5
version.  After building with "make xconfig (saving without changing); make dep; make-kpkg -us -uc buildpackage", the only difference in .config was that the new version contains the following comments:

# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set


Steps to reproduce:
Comment 1 Justin R. Davis 2007-09-06 10:50:51 UTC
Created attachment 12744 [details]
.config file
Comment 2 Willy Tarreau 2007-09-08 10:29:38 UTC
Problem caused by lack of -fno-unit-at-a-time removed from 2.4.35.1 due to gcc-4.2.
Comment 3 Willy Tarreau 2007-09-08 10:30:34 UTC
-fno-unit-at-a-time option reintroduced in 2.4.35.2 to fix this particular problem.

Note You need to log in before you can comment on or make changes to this bug.