From: Jay Vosburgh <fubar@us.ibm.com>
To: =?UTF-8?B?Tmljb2xhcyBkZSBQZXNsb8O8YW4=?= <nicolas.2p.debian@gmail.com>
Cc: Weiping Pan <wpan@redhat.com>, netdev@vger.kernel.org
Subject: Re: [PATCH net 3/3] bonding:force to use primary slave
Date: Mon, 11 Jun 2012 14:17:21 -0700 [thread overview]
Message-ID: <32118.1339449441@death.nxdomain> (raw)
In-Reply-To: <4FD64BDB.3060003@gmail.com>
Nicolas de Pesloüan <nicolas.2p.debian@gmail.com> wrote:
>Le 11/06/2012 11:00, Weiping Pan a écrit :
>> When we set primary slave with module parameters, bond will always use this
>> primary slave as active slave.
>>
>> But when we modify primary slave via sysfs, it will call
>> bond_should_change_active() and take into account primary_reselect.
>>
>> And I think we should use the new primary slave as the new active slave
>> regardless of the value of primary_reselect.
>> Thus the behavior is the same with module parameters and meets the
>> administrator's expectation.
>>
>> Signed-off-by: Weiping Pan<wpan@redhat.com>
>> ---
>> drivers/net/bonding/bond_sysfs.c | 1 +
>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
>> index 1b0f3cd..7256ae4 100644
>> --- a/drivers/net/bonding/bond_sysfs.c
>> +++ b/drivers/net/bonding/bond_sysfs.c
>> @@ -1077,6 +1077,7 @@ static ssize_t bonding_store_primary(struct device *d,
>> bond->dev->name, slave->dev->name);
>> bond->primary_slave = slave;
>> strcpy(bond->params.primary, slave->dev->name);
>> + bond->force_primary = true;
>> bond_select_active_slave(bond);
>> goto out;
>> }
>
>Not sure this is the right behavior. One may want to change the primary
>without causing a switch to this primary if another slave is already
>active, and setup primary_reselect to failure or better for that
>reason. The administrator still have the option to write into
>active_slave, to force the new active slave after changing the primary.
>
>Arguably, this should be documented.
I suspect it is obeying the documented behavior, at least for
the behaviors that are documented.
The documentation already says that "When initially enslaved,
the primary slave is always made the active slave." That's probably
what covers the "module param" case, because the options are all set
prior to any slaves being added, so when the primary slave is later
enslaved, it is made the active slave immediately.
Now, the documentation for the primary option itself also says:
"The specified device will always be the active slave while it
is available. Only when the primary is off-line will alternate
devices be used."
Which is the old behavior, prior to primary_reselect being added
(although it is still the default behavior). This should probably
change to reflect the actual behavior, i.e., that changing the primary
option in real time results in a reselection of the primary according to
the policy specified by primary_reselect.
-J
---
-Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com
next prev parent reply other threads:[~2012-06-11 21:17 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-11 9:00 [PATCH net 0/3] correct behavior when modify primary via sysfs Weiping Pan
2012-06-11 9:00 ` [PATCH net 1/3] bonding:record primary when modify it " Weiping Pan
2012-06-11 19:38 ` Nicolas de Pesloüan
2012-06-11 20:48 ` Jay Vosburgh
2012-06-12 3:38 ` Weiping Pan
2012-06-12 20:05 ` Nicolas de Pesloüan
2012-06-12 22:24 ` David Miller
2012-06-11 9:00 ` [PATCH net 2/3] bonding:check mode when modify primary_reselect Weiping Pan
2012-06-11 19:42 ` Nicolas de Pesloüan
2012-06-11 20:56 ` Jay Vosburgh
2012-06-11 21:13 ` Nicolas de Pesloüan
2012-06-11 21:28 ` Jay Vosburgh
2012-06-11 9:00 ` [PATCH net 3/3] bonding:force to use primary slave Weiping Pan
2012-06-11 19:49 ` Nicolas de Pesloüan
2012-06-11 21:17 ` Jay Vosburgh [this message]
2012-06-12 3:35 ` [PATCH net V2] " Weiping Pan
2012-06-12 5:00 ` Jay Vosburgh
2012-06-12 6:37 ` Weiping Pan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=32118.1339449441@death.nxdomain \
--to=fubar@us.ibm.com \
--cc=netdev@vger.kernel.org \
--cc=nicolas.2p.debian@gmail.com \
--cc=wpan@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).