From: Cong Wang <amwang@redhat.com>
To: Jay Vosburgh <fubar@us.ibm.com>
Cc: Neil Horman <nhorman@tuxdriver.com>,
netdev@vger.kernel.org, Matt Mackall <mpm@selenic.com>,
bridge@lists.linux-foundation.org, linux-kernel@vger.kernel.org,
David Miller <davem@davemloft.net>,
Andy Gospodarek <gospo@redhat.com>,
bonding-devel@lists.sourceforge.net
Subject: Re: [Bridge] [RFC Patch 3/3] bonding: make bonding support netpoll
Date: Tue, 23 Mar 2010 10:01:52 +0800 [thread overview]
Message-ID: <4BA82110.6040201@redhat.com> (raw)
In-Reply-To: <12061.1269301015@death.nxdomain.ibm.com>
Jay Vosburgh wrote:
> Matt Mackall <mpm@selenic.com> wrote:
>
>> On Mon, 2010-03-22 at 04:17 -0400, Amerigo Wang wrote:
>>> Based on Andy's work, but I modify a lot.
>>>
>>> Similar to the patch for bridge, this patch does:
>>>
>>> 1) implement the 4 methods to support netpoll for bonding;
>>>
>>> 2) modify netpoll during forwarding packets in bonding;
>>>
>>> 3) disable netpoll support of bridge when a netpoll-unabled device
>>> is added to bonding;
>>>
>>> 4) enable netpoll support when all underlying devices support netpoll.
>> Again, not sure if this is the right policy. Seems to me that on a
>> bonding device we should simply pick an interface to send netpoll
>> messages on, without reference to balancing, etc. Thus, if any of the
>> bonded devices supports polling, it should work.
>
> For some of the modes, the above is pretty straighforward.
> Others, 802.3ad and balance-alb, are a bit more complicated.
>
> The risk is that the network peers and switches may see the same
> MAC address on multiple ports, or different MAC addresses for the same
> IP address.
>
> To implement the above suggestion, I think a "current netpoll
> slave" would have to be tracked, and kept up to date (as slaves become
> active or inactive, etc). Reusing the existing "current active slave"
> won't work for the case that the active slave is not netpoll-capable,
> but a different slave is; also, not all modes use the current active
> slave.
>
> In 802.3ad, the "current netpoll slave" selector will have to
> poke into the aggregator status to choose the netpoll slave. It's not a
> simple matter of picking one and then sticking with it forever; if the
> aggregator containing the netpoll slave is deactivated, then peers may
> not receive the traffic, etc.
>
> In the active-backup mode, only the active slave can send or
> receive, so if it's not netpoll capable, but a backup slave is, you're
> still out of luck (unless netpoll awareness is added to the "best slave"
> selection logic, and even then it'd have to be a secondary criteria).
> Or, the inactive slave can be transmitted on, but if the same MAC comes
> out of the active and a backup slave, it can confuse switches.
>
> In one mode (balance-alb), slaves keep their own MAC addresses,
> and are matched with peers. Bypassing the balance algorithm could again
> confuse peers or switches, who could see two MAC addresses for the same
> IP address, if netpoll traffic goes out a different slave than the
> balance algorithm picks for the same destination.
>
> I think, then, the question becomes: is this extra complexity
> worth it to cover the cases of netpoll over bonding wherein one or more
> slaves don't support netpoll?
>
I see, thanks for your explanation, I overlooked the bonding case.
The current implementation will totally disable netpoll when at least one
slave doesn't support netpoll, so it looks like a safe choice. ;)
> How many network drivers don't support netpoll nowadays?
>
Only about 20% of network drivers support netpoll, a quick grep of 'ndo_poll_controller'
can show that.
Thanks a lot!
WARNING: multiple messages have this Message-ID (diff)
From: Cong Wang <amwang@redhat.com>
To: Jay Vosburgh <fubar@us.ibm.com>
Cc: Matt Mackall <mpm@selenic.com>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
bridge@lists.linux-foundation.org,
Andy Gospodarek <gospo@redhat.com>,
Neil Horman <nhorman@tuxdriver.com>,
Stephen Hemminger <shemminger@linux-foundation.org>,
bonding-devel@lists.sourceforge.net,
David Miller <davem@davemloft.net>
Subject: Re: [RFC Patch 3/3] bonding: make bonding support netpoll
Date: Tue, 23 Mar 2010 10:01:52 +0800 [thread overview]
Message-ID: <4BA82110.6040201@redhat.com> (raw)
In-Reply-To: <12061.1269301015@death.nxdomain.ibm.com>
Jay Vosburgh wrote:
> Matt Mackall <mpm@selenic.com> wrote:
>
>> On Mon, 2010-03-22 at 04:17 -0400, Amerigo Wang wrote:
>>> Based on Andy's work, but I modify a lot.
>>>
>>> Similar to the patch for bridge, this patch does:
>>>
>>> 1) implement the 4 methods to support netpoll for bonding;
>>>
>>> 2) modify netpoll during forwarding packets in bonding;
>>>
>>> 3) disable netpoll support of bridge when a netpoll-unabled device
>>> is added to bonding;
>>>
>>> 4) enable netpoll support when all underlying devices support netpoll.
>> Again, not sure if this is the right policy. Seems to me that on a
>> bonding device we should simply pick an interface to send netpoll
>> messages on, without reference to balancing, etc. Thus, if any of the
>> bonded devices supports polling, it should work.
>
> For some of the modes, the above is pretty straighforward.
> Others, 802.3ad and balance-alb, are a bit more complicated.
>
> The risk is that the network peers and switches may see the same
> MAC address on multiple ports, or different MAC addresses for the same
> IP address.
>
> To implement the above suggestion, I think a "current netpoll
> slave" would have to be tracked, and kept up to date (as slaves become
> active or inactive, etc). Reusing the existing "current active slave"
> won't work for the case that the active slave is not netpoll-capable,
> but a different slave is; also, not all modes use the current active
> slave.
>
> In 802.3ad, the "current netpoll slave" selector will have to
> poke into the aggregator status to choose the netpoll slave. It's not a
> simple matter of picking one and then sticking with it forever; if the
> aggregator containing the netpoll slave is deactivated, then peers may
> not receive the traffic, etc.
>
> In the active-backup mode, only the active slave can send or
> receive, so if it's not netpoll capable, but a backup slave is, you're
> still out of luck (unless netpoll awareness is added to the "best slave"
> selection logic, and even then it'd have to be a secondary criteria).
> Or, the inactive slave can be transmitted on, but if the same MAC comes
> out of the active and a backup slave, it can confuse switches.
>
> In one mode (balance-alb), slaves keep their own MAC addresses,
> and are matched with peers. Bypassing the balance algorithm could again
> confuse peers or switches, who could see two MAC addresses for the same
> IP address, if netpoll traffic goes out a different slave than the
> balance algorithm picks for the same destination.
>
> I think, then, the question becomes: is this extra complexity
> worth it to cover the cases of netpoll over bonding wherein one or more
> slaves don't support netpoll?
>
I see, thanks for your explanation, I overlooked the bonding case.
The current implementation will totally disable netpoll when at least one
slave doesn't support netpoll, so it looks like a safe choice. ;)
> How many network drivers don't support netpoll nowadays?
>
Only about 20% of network drivers support netpoll, a quick grep of 'ndo_poll_controller'
can show that.
Thanks a lot!
next prev parent reply other threads:[~2010-03-23 2:01 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-22 8:17 [Bridge] [RFC Patch 1/3] netpoll: add generic support for bridge and bonding devices Amerigo Wang
2010-03-22 8:17 ` Amerigo Wang
2010-03-22 8:17 ` [Bridge] [RFC Patch 2/3] bridge: make bridge support netpoll Amerigo Wang
2010-03-22 8:17 ` Amerigo Wang
2010-03-22 22:35 ` [Bridge] " Matt Mackall
2010-03-22 22:35 ` Matt Mackall
2010-03-23 2:03 ` [Bridge] " Cong Wang
2010-03-23 2:03 ` Cong Wang
2010-03-23 4:27 ` [Bridge] " Matt Mackall
2010-03-23 4:27 ` Matt Mackall
2010-03-23 4:39 ` [Bridge] " Cong Wang
2010-03-23 4:39 ` Cong Wang
2010-03-23 4:51 ` [Bridge] " Matt Mackall
2010-03-23 4:51 ` Matt Mackall
2010-03-23 4:59 ` [Bridge] " David Miller
2010-03-23 4:59 ` David Miller
2010-03-23 5:00 ` [Bridge] " Cong Wang
2010-03-23 5:00 ` Cong Wang
2010-03-23 4:57 ` [Bridge] " David Miller
2010-03-23 4:57 ` David Miller
2010-03-23 5:06 ` [Bridge] " Cong Wang
2010-03-23 5:06 ` Cong Wang
2010-03-22 8:17 ` [Bridge] [RFC Patch 3/3] bonding: make bonding " Amerigo Wang
2010-03-22 8:17 ` Amerigo Wang
2010-03-22 22:38 ` [Bridge] " Matt Mackall
2010-03-22 22:38 ` Matt Mackall
2010-03-22 23:36 ` [Bridge] " Jay Vosburgh
2010-03-22 23:36 ` Jay Vosburgh
2010-03-23 2:01 ` Cong Wang [this message]
2010-03-23 2:01 ` Cong Wang
2010-03-23 0:56 ` [Bridge] " Andy Gospodarek
2010-03-23 0:56 ` Andy Gospodarek
2010-03-23 1:49 ` [Bridge] " Cong Wang
2010-03-23 1:49 ` Cong Wang
2010-03-22 22:31 ` [Bridge] [RFC Patch 1/3] netpoll: add generic support for bridge and bonding devices Matt Mackall
2010-03-22 22:31 ` Matt Mackall
2010-03-23 2:13 ` [Bridge] " Cong Wang
2010-03-23 2:13 ` Cong Wang
2010-03-23 3:49 ` [Bridge] " David Miller
2010-03-23 3:49 ` David Miller
2010-03-23 4:47 ` [Bridge] " Cong Wang
2010-03-23 4:47 ` Cong Wang
2010-03-23 4:58 ` [Bridge] " David Miller
2010-03-23 4:58 ` David Miller
2010-03-23 5:15 ` [Bridge] " Cong Wang
2010-03-23 5:15 ` Cong Wang
2010-03-23 12:11 ` [Bridge] " Jeff Moyer
2010-03-23 12:11 ` Jeff Moyer
2010-03-24 2:29 ` [Bridge] " Cong Wang
2010-03-24 2:29 ` Cong Wang
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=4BA82110.6040201@redhat.com \
--to=amwang@redhat.com \
--cc=bonding-devel@lists.sourceforge.net \
--cc=bridge@lists.linux-foundation.org \
--cc=davem@davemloft.net \
--cc=fubar@us.ibm.com \
--cc=gospo@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpm@selenic.com \
--cc=netdev@vger.kernel.org \
--cc=nhorman@tuxdriver.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.