All of lore.kernel.org
 help / color / mirror / Atom feed
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. */
> 


      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 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.