From: Shmulik Hen <shmulik.hen@intel.com>
To: hadi@cyberus.ca
Cc: bonding-devel@lists.sourceforge.net, netdev@oss.sgi.com
Subject: Re: [SET 2][PATCH 2/8][bonding] Propagating master's settings to slaves
Date: Mon, 11 Aug 2003 13:08:48 +0300 [thread overview]
Message-ID: <200308111308.48263.shmulik.hen@intel.com> (raw)
In-Reply-To: <1060570284.1056.15.camel@jzny.localdomain>
On Monday 11 August 2003 05:51 am, you wrote:
> On Sat, 2003-08-09 at 06:29, Hen, Shmulik wrote:
> > Not sure I fully understood the concerns above, but I'll try
> > to explain what the change was all about.
>
> I think it wasnt the one specific change rather a few posted that i
> spent a minute or two staring at. And you confirm my suspicion
> below.
I probably didn't make myself clear - by "understood" I wanted to say
I probably didn't get the *meaning* of the whole sentence , and not
"I don't under stand why you are concerned".
(English is not my native tongue :) ).
> I am not very familiar with the bonding code although i think you
> guys have been doing very good work since you got involved.
> In any case the approach you state above is wrong. Actually Stephen
> Hemminger and I discussed this for bridging. Post 2.6 he is going
> to remove a lot of the bridge policy (or "brain" as you call it)
> out of the kernel. Netlink for kernel<->userspace not /proc. I
> think we should head towards that direction so we can have more
> sophisticated management.
I, on the other hand, am not familiar with the bridging code and I
don't know what it actually does internally, I just noticed that
regarding config operations, most of the code is done at the kernel
level as response to ioctl commands.
I'll try to clarify how that relates to bonding. The ifenslave utility
has very little "brain" as it is, and all it knows how to do
currently is enslave/release slave devices and change the current
active slave. It also has some ability to extract status info from
the bond and present it nicely for a user.
The "brain" I was referring to in the bonding module itself has to do
with timer functions monitoring link status or Tx/Rx activity of the
slaves, and once a faulty slave is detected, switch to use another
one instead according to the teaming mode. There are no large scale
decision making nor major CPU consuming computations that are part of
the continuous operation of the module that is basically handle Rx/Tx
on slaves.
The bonding module doesn't need to access any special info that is
normally available to user space apps. What it does need is very
short response time and accessibility to kernel internal resources
like net devices info to make it a high availability intermediate
driver.
Trying to move that from the kernel module into the config application
seems to be a very hard task to implement since we'll have to find a
way to make the application constantly aware to the specifics like
current topology, slave-to-bond affiliation, updated status of each
slave, etc., etc. It would also mean that the driver will have to
wait for the application to tell it what to do each time it needs a
decision, and by that we'll surely suffer some performance hit and
probably get low availability or temporary loss of communications.
Going back to the first problem, discussions on the bonding
development list pointed that it might be better if we moved the
configuration-time decisions making to the driver, so the application
wouldn't have to deal with situations like:
1) get the master's MTU settings, master's teaming mode, communication
version, backwards compatibility issues, etc.
2) figure if need to set MTU to slave according to all that,
3) try to set that on the new slave being added,
4) if not successfull, decide if may enslave anyway or,
5) maybe undo all previous settings already done to the slave
(needs a way to retrieve old values)
6) decide if should go on or fail any further operations
7) repeat the above for all other settings
On the other hand, what we want to get to is something more like:
1) tell bonding to add slave X to bond Y,
2) watch for error returns,
3) print a nice message according to the type of the error.
While the driver, already aware of all possible relevant data, makes
all decisions, performs settings, handles compatibility issues,
checks for failures at each stage, handles any undo steps, and return
success/error values accordingly.
>
> Thoughts?
Mostly explanations :)
Is there anywhere I can see what you refereed to as discussions with
Stephen Hemminger ? I would really like to know how and what could
also be applied to bonding.
Regards,
Shmulik.
next prev parent reply other threads:[~2003-08-11 10:08 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-08-09 10:29 [SET 2][PATCH 2/8][bonding] Propagating master's settings to slaves Hen, Shmulik
2003-08-11 2:51 ` jamal
2003-08-11 10:08 ` Shmulik Hen [this message]
2003-08-11 13:47 ` jamal
2003-08-11 14:07 ` [Bonding-devel] Re: [SET 2][PATCH 2/8][bonding] Propagating master's settings toslaves Laurent DENIEL
2003-08-11 14:20 ` Shmulik Hen
2003-08-11 14:34 ` jamal
2003-08-11 16:25 ` Shmulik Hen
2003-08-11 16:43 ` Jeff Garzik
2003-08-11 17:31 ` [Bonding-devel] Re: [SET 2][PATCH 2/8][bonding] Propagating master'ssettings toslaves Laurent DENIEL
2003-08-11 17:43 ` Jeff Garzik
2003-08-12 6:31 ` Laurent DENIEL
2003-08-12 12:59 ` jamal
2003-08-12 13:08 ` David S. Miller
2003-08-12 14:10 ` Laurent DENIEL
[not found] ` <1060698412.1063.7.camel@jzny.localdomain>
2003-08-12 14:36 ` Laurent DENIEL
2003-08-12 15:05 ` jamal
2003-08-12 2:32 ` jamal
2003-08-11 21:27 ` [Bonding-devel] Re: [SET 2][PATCH 2/8][bonding] Propagating master's settings toslaves Mark Huth
2003-08-11 21:41 ` Jay Vosburgh
2003-08-11 23:15 ` [SET 2][PATCH 2/8][bonding] Propagating master's settings to slaves Shmulik Hen
2003-08-11 23:28 ` [Bonding-devel] " Jay Vosburgh
2003-08-12 2:36 ` jamal
2003-08-12 2:33 ` [Bonding-devel] Re: [SET 2][PATCH 2/8][bonding] Propagating master's settings toslaves jamal
2003-08-12 2:31 ` jamal
-- strict thread matches above, loose matches on Subject: below --
2003-08-08 14:44 [SET 2][PATCH 2/8][bonding] Propagating master's settings to slaves Shmulik Hen
2003-08-08 22:01 ` jamal
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=200308111308.48263.shmulik.hen@intel.com \
--to=shmulik.hen@intel.com \
--cc=bonding-devel@lists.sourceforge.net \
--cc=hadi@cyberus.ca \
--cc=netdev@oss.sgi.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).