[dpdk-dev] [dpdk-stable] [PATCH] net/bonding: stop and deactivate slaves when bonding port is stopped
Ferruh Yigit
ferruh.yigit at intel.com
Fri Sep 28 12:03:47 CEST 2018
On 9/28/2018 11:00 AM, Ferruh Yigit wrote:
> On 8/24/2018 3:05 PM, Chas Williams wrote:
>>
>>
>> On Fri, Aug 24, 2018 at 6:39 AM Ferruh Yigit <ferruh.yigit at intel.com
>> <mailto:ferruh.yigit at intel.com>> wrote:
>>
>> On 8/23/2018 4:21 PM, Chas Williams wrote:
>> >
>> >
>> > On Thu, Aug 23, 2018 at 9:15 AM Ferruh Yigit <ferruh.yigit at intel.com
>> <mailto:ferruh.yigit at intel.com>
>> > <mailto:ferruh.yigit at intel.com <mailto:ferruh.yigit at intel.com>>> wrote:
>> >
>> > On 8/6/2018 4:50 PM, Chas Williams wrote:
>> > > On Sun, Aug 5, 2018 at 5:55 PM Thomas Monjalon <thomas at monjalon.net
>> <mailto:thomas at monjalon.net>
>> > <mailto:thomas at monjalon.net <mailto:thomas at monjalon.net>>> wrote:
>> > >
>> > >> 02/08/2018 15:38, Doherty, Declan:
>> > >>> On 01/08/2018 2:18 PM, Radu Nicolau wrote:
>> > >>>> When a bonding port is stopped also stop and deactivate all slaves.
>> > >>>> Otherwise slaves will be still listed as active.
>> > >>>>
>> > >>>> Fixes: 69bce062132b ("net/bonding: do not clear active slave count")
>> > >>>> Cc: stable at dpdk.org <mailto:stable at dpdk.org>
>> <mailto:stable at dpdk.org <mailto:stable at dpdk.org>>
>> > >>>>
>> > >>>> Signed-off-by: Radu Nicolau <radu.nicolau at intel.com
>> <mailto:radu.nicolau at intel.com>
>> > <mailto:radu.nicolau at intel.com <mailto:radu.nicolau at intel.com>>>
>> > >>>
>> > >>> Acked-by: Declan Doherty <declan.doherty at intel.com
>> <mailto:declan.doherty at intel.com>
>> > <mailto:declan.doherty at intel.com <mailto:declan.doherty at intel.com>>>
>> > >>
>> > >> Waiting for opinion from the other bonding maintainer (Chas)
>> > >> who started to review and has some doubts.
>> > >>
>> > >
>> > > The slaves being listed as active is not a bug. If the slaves are not
>> > > deactivated, then they should be considered activated. Previously,
>> > > stopping the bonding PMD just reset the active slave count. That's
>> > > not the right way to deactivate slaves. This was fixed by 69bce062132b.
>> > >
>> > > This patch is new behavior of explicitly deactivating the slaves when
>> > > the bonding PMD is stopped.
>> > >
>> > > As I mentioned, I think this makes life difficult for those of us using
>> > > an external state machine. However, that should probably be fixed
>> > > differently then.
>> > >
>> > >
>> > >>
>> > >> Chas, please do you agree with Declan's ack?
>> > >>
>> > >>
>> > >>
>> > > Change the Fixes line.
>> >
>> > Hi Chas,
>> >
>> > Are you OK with the rest of the patch if Fixes line fixed?
>> > If already have a proposed fixes line I can fix it while merging.
>> >
>> >
>> > Yes, the rest of the patch is fine as long as the Fixes is correct.
>> > Try this:
>> >
>> > Fixes: 2efb58cbab6e ("bond: new link bonding library")
>> >
>> > And it's really new behavior. Perhaps Fixes: isn't quite right.
>> > The current code works fine with activated slaves existing outside
>> > of the stop/star.
>>
>> From your description dropping Fixes line seems OK, but it will effect if the
>> patch backported or not.
>>
>>
>> Then dont' drop the Fixes line. See below.
>>
>>
>> Isn't it clear from bonding requirement what should slave ports' status be when
>> bonding port it stopped?
>>
>>
>> I am guessing the author's original intent was to deactivate all the
>> slaves because he reset the activate slave count to 0. However, that
>> didn't actually deactivate a slave and later activating an already
>> active slave after another start would result in some odd failures.
>
> Yes, intention seems as you said, there is an unit test that expects active
> slave count to be 0 after bond port stopped.
> Your change to remove setting active slave count to zero on bond stop causes
> that test fail.
> To fix the unit test, all slaves stopped and deactivated.
>
> I think it is still clear if that expectation from unit test coming from bonding
> requirement and development assumption. But will get the patch, with updated
> fixes line, to fix the unit test.
it is still _not_ clear ...
bonding requirement _or_ development assumption. ...
>
>>
>> In a more existential sense, what does active mean? In the case of
>> 802.3ad, a slave is potentially active until the protocol says otherwise
>> which means a timeout. So the stopped/started aspect of the port
>> isn't necessarily a concern. If you are just briefly stopping a
>> port to reconfigure, perhaps you don't want to renegotiate the
>> 802.3ad state. Of course, if you reconfigure a port, there is a
>> good chance you want to renegotiate with the other end anyway.
>>
>> TL;DR -- fine with this patch. Add new Fixes line so backported.
>>
>>
>>
>>
>
More information about the dev
mailing list