From: Vlad Yasevich <vyasevich@gmail.com>
To: linux-sctp@vger.kernel.org
Subject: Re: Is SCTP throughput really this low compared to TCP?
Date: Wed, 23 Apr 2014 12:59:25 +0000 [thread overview]
Message-ID: <5357B92D.1000901@gmail.com> (raw)
In-Reply-To: <1383F7BACEF3F141A39A7AC90F80407E31B23A@psmwsonsmbx01.sonusnet.com>
On 04/22/2014 05:50 PM, Butler, Peter wrote:
> When I apply the patch you provided to the standard 3.14.0 kernel, I still get the highly erratic throughput (see output below). It was only when I did the full "git revert" as suggested by Daniel that the erratic behaviour went away.
>
> [root@Lab200slot2 ~]# iperf3 --sctp -4 -c 192.168.240.3 -V -l 1452 -t 60
> iperf version 3.0.1 (10 January 2014)
> Linux Lab200slot2 3.14.0 #1 SMP Thu Apr 3 23:18:29 EDT 2014 x86_64
> Time: Tue, 22 Apr 2014 21:44:24 GMT
> Connecting to host 192.168.240.3, port 5201
> Cookie: Lab200slot2.1398203064.823332.513f07
> [ 4] local 192.168.240.2 port 55819 connected to 192.168.240.3 port 5201
> Starting Test: protocol: SCTP, 1 streams, 1452 byte blocks, omitting 0 seconds, 60 second test
> [ ID] Interval Transfer Bandwidth
> [ 4] 0.00-1.08 sec 23.9 MBytes 186 Mbits/sec
> [ 4] 1.08-2.13 sec 16.0 MBytes 128 Mbits/sec
> [ 4] 2.13-3.95 sec 198 MBytes 913 Mbits/sec
> [ 4] 3.95-4.00 sec 15.8 MBytes 2.62 Gbits/sec
> [ 4] 4.00-5.00 sec 226 MBytes 1.90 Gbits/sec
> [ 4] 5.00-6.84 sec 180 MBytes 819 Mbits/sec
> [ 4] 6.84-7.00 sec 44.0 MBytes 2.30 Gbits/sec
> [ 4] 7.00-8.01 sec 6.31 MBytes 52.2 Mbits/sec
> [ 4] 8.01-9.08 sec 21.3 MBytes 167 Mbits/sec
> [ 4] 9.08-10.12 sec 13.2 MBytes 107 Mbits/sec
> [ 4] 10.12-11.17 sec 14.8 MBytes 119 Mbits/sec
> [ 4] 11.17-12.97 sec 180 MBytes 839 Mbits/sec
> [ 4] 12.97-13.00 sec 8.25 MBytes 2.27 Gbits/sec
> [ 4] 13.00-14.10 sec 30.6 MBytes 234 Mbits/sec
> [ 4] 14.10-15.95 sec 191 MBytes 866 Mbits/sec
> [ 4] 15.95-16.00 sec 15.1 MBytes 2.51 Gbits/sec
> [ 4] 16.00-17.00 sec 219 MBytes 1.84 Gbits/sec
> [ 4] 17.00-18.09 sec 28.5 MBytes 218 Mbits/sec
> [ 4] 18.09-19.13 sec 11.4 MBytes 92.5 Mbits/sec
> [ 4] 19.13-20.17 sec 14.1 MBytes 114 Mbits/sec
> [ 4] 20.17-21.21 sec 13.0 MBytes 105 Mbits/sec
> [ 4] 21.21-23.27 sec 16.8 MBytes 68.4 Mbits/sec
> [ 4] 23.27-23.27 sec 0.00 Bytes 0.00 bits/sec
> [ 4] 23.27-24.00 sec 168 MBytes 1.91 Gbits/sec
> [ 4] 24.00-25.76 sec 179 MBytes 852 Mbits/sec
> [ 4] 25.76-26.00 sec 21.2 MBytes 760 Mbits/sec
>
>
Thanks Peter. This means there is something else wrong...
-vlad
>
>
>
>
> -----Original Message-----
> From: Vlad Yasevich [mailto:vyasevich@gmail.com]
> Sent: April-17-14 11:27 AM
> To: Butler, Peter; Daniel Borkmann
> Cc: linux-sctp@vger.kernel.org
> Subject: Re: Is SCTP throughput really this low compared to TCP?
>
> On 04/14/2014 12:47 PM, Butler, Peter wrote:
>> Glad to be of help :o)
>>
>
> Hi Peter
>
> Would you be able to run this test again with the following patch on top of the problematic code.
>
> Thanks
> -vlad
>
>
> commit c9888a220916284403c5115d6c6c7e33a00d0b55
> Author: Vlad Yasevich <vyasevic@redhat.com>
> Date: Thu Apr 17 09:21:52 2014 -0400
>
> sctp: Trigger window update SACK after skb has been freed.
>
> Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
>
> diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c index 8d198ae..b59a7c5 100644
> --- a/net/sctp/ulpevent.c
> +++ b/net/sctp/ulpevent.c
> @@ -1011,7 +1011,6 @@ static void sctp_ulpevent_release_data(struct sctp_ulpevent *event) {
> struct sk_buff *skb, *frag;
> unsigned int len;
> - struct sctp_association *asoc;
>
> /* Current stack structures assume that the rcv buffer is
> * per socket. For UDP style sockets this is not true as
> @@ -1036,11 +1035,7 @@ static void sctp_ulpevent_release_data(struct sctp_ulpevent *event)
> }
>
> done:
> - asoc = event->asoc;
> - sctp_association_hold(asoc);
> sctp_ulpevent_release_owner(event);
> - sctp_assoc_rwnd_update(asoc, true);
> - sctp_association_put(asoc);
> }
>
> static void sctp_ulpevent_release_frag_data(struct sctp_ulpevent *event) @@ -1071,12 +1066,21 @@ done:
> */
> void sctp_ulpevent_free(struct sctp_ulpevent *event) {
> + struct sctp_association *asoc = event->asoc;
> +
> if (sctp_ulpevent_is_notification(event))
> sctp_ulpevent_release_owner(event);
> else
> sctp_ulpevent_release_data(event);
>
> kfree_skb(sctp_event2skb(event));
> + /* The socket is locked and the assocaiton can't go anywhere
> + * since we are walking the uplqueue. No need to hold
> + * another ref on the association. Now that the skb has been
> + * freed and accounted for everywhere, see if we need to send
> + * a window update SACK.
> + */
> + sctp_assoc_rwnd_update(asoc, true);
> }
>
> /* Purge the skb lists holding ulpevents. */
>
prev parent reply other threads:[~2014-04-23 12:59 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-10 19:12 Is SCTP throughput really this low compared to TCP? Butler, Peter
2014-04-10 20:21 ` Vlad Yasevich
2014-04-10 20:40 ` Butler, Peter
2014-04-10 21:00 ` Vlad Yasevich
2014-04-11 7:42 ` Daniel Borkmann
2014-04-11 15:07 ` Butler, Peter
2014-04-11 15:21 ` Daniel Borkmann
2014-04-11 15:27 ` Vlad Yasevich
2014-04-11 15:35 ` Daniel Borkmann
2014-04-11 18:19 ` Vlad Yasevich
2014-04-11 18:22 ` Butler, Peter
2014-04-11 18:40 ` Daniel Borkmann
2014-04-11 18:41 ` Daniel Borkmann
2014-04-11 18:58 ` Butler, Peter
2014-04-11 19:16 ` Butler, Peter
2014-04-11 19:20 ` Vlad Yasevich
2014-04-11 19:24 ` Butler, Peter
2014-04-11 20:14 ` Butler, Peter
2014-04-11 20:18 ` Butler, Peter
2014-04-11 20:51 ` Vlad Yasevich
2014-04-11 20:53 ` Vlad Yasevich
2014-04-11 20:57 ` Butler, Peter
2014-04-11 23:58 ` Daniel Borkmann
2014-04-12 7:27 ` Dongsheng Song
2014-04-14 14:52 ` Butler, Peter
2014-04-14 15:49 ` Butler, Peter
2014-04-14 16:43 ` Butler, Peter
2014-04-14 16:45 ` Daniel Borkmann
2014-04-14 16:47 ` Butler, Peter
2014-04-14 17:06 ` Butler, Peter
2014-04-14 17:10 ` Butler, Peter
2014-04-14 18:54 ` Matija Glavinic Pecotic
2014-04-14 19:46 ` Daniel Borkmann
2014-04-17 15:26 ` Vlad Yasevich
2014-04-17 16:15 ` Butler, Peter
2014-04-22 21:50 ` Butler, Peter
2014-04-23 12:59 ` Vlad Yasevich [this message]
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=5357B92D.1000901@gmail.com \
--to=vyasevich@gmail.com \
--cc=linux-sctp@vger.kernel.org \
/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