From: Vlad Yasevich <vladislav.yasevich@hp.com>
To: Yaogong Wang <ywang15@ncsu.edu>
Cc: linux-sctp@vger.kernel.org, Sridhar Samudrala <sri@us.ibm.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/6] sctp multistream scheduling: extend socket API
Date: Mon, 14 Jun 2010 12:36:27 -0400 [thread overview]
Message-ID: <4C165A8B.1060008@hp.com> (raw)
In-Reply-To: <AANLkTilGROAVnKE5odR6qy6LrVjPSHxkqCrPhAtHtjlQ@mail.gmail.com>
Yaogong Wang wrote:
> There is an important design issue here: when should the user set this
> socket option?
>
> My current assumption is that the user choose the scheduling algorithm
> after declaring the socket but before the establishment of any
> association. Therefore, the granularity of control is socket-based
> rather than association-based. In one-to-many style socket case, all
> associations inherit the scheduling algorithm of the socket. The
> problems with this approach are:
> 1. Cannot specify different scheduling algorithm for each association
> under the same socket
> 2. Since the option is set before the establishment of any
> association, it doesn't know how many streams would be negotiated. It
> could only consult initmsg for the intended number of outgoing
> streams.
>
> If we go with the association-based approach, the above problems can
> be solved. But the question is: in this case, when should the user set
> this option? In one-to-many style socket, associations are implicitly
> established. There isn't a point where association is established but
> data transfer hasn't started yet so that the user can choose the
> scheduling algorithm. Any suggestion on this dilemma?
I've been thinking about this and trying to come up with scenarios of
when performing this function at association level may be useful.
The most compelling example is really in a 1-1 or peeled off case. Currently,
one can not change the scheduling on a peeled off association and that
might be a rather useful feature. Typically, associations are peeled
off just so that they can provide additional performance. Such association
may wants the additional benefit of stream prioritization.
I can however see the issues on both side of this. A good counter argument is
that if a server should provide the same level of service for a given port.
In the end, I think I'll leave it up to you. My initial question was from the
API perspective.
Now there are some technical challenges in allowing per-association option.
a)How do we deal with changing algorithms that require additional storage?
b)What do we do with DATA that's been queued before algorithm is chosen?
There may be others ones I haven't though off yet.
The simplest answer to a) is that such operations are forbidden until the
queue is drained. That's the simplest to implement and may not be that
bad for the application, considering we have a SENDER_DRY event that can
allow the application to control when the call is made.
As for b), we might have to go with a lobby or a 2 level queue approach.
For this, we can probably re-use the socket send queue, that can be drained
when association can send DATA. This might be a good thing to have anyway
so that we do not waste space for streams that haven't been negotiated.
-vlad
next prev parent reply other threads:[~2010-06-14 16:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-03 5:42 [PATCH 4/6] sctp multistream scheduling: extend socket API Yaogong Wang
2010-06-03 8:16 ` Wei Yongjun
2010-06-03 14:43 ` Vlad Yasevich
2010-06-05 19:57 ` Yaogong Wang
2010-06-14 16:39 ` Vlad Yasevich
2010-06-03 15:24 ` Vlad Yasevich
2010-06-05 19:40 ` Yaogong Wang
2010-06-14 16:36 ` Vlad Yasevich [this message]
2010-06-21 1:06 ` Yaogong Wang
2010-06-21 14:58 ` Vlad Yasevich
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=4C165A8B.1060008@hp.com \
--to=vladislav.yasevich@hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sctp@vger.kernel.org \
--cc=sri@us.ibm.com \
--cc=ywang15@ncsu.edu \
/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