All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlad Yasevich <vyasevich@gmail.com>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: netdev@vger.kernel.org, "David S. Miller" <davem@davemloft.net>,
	linux-sctp@vger.kernel.org
Subject: Re: [PATCH v2] sctp: be more restrictive in transport selection on bundled sacks
Date: Thu, 28 Jun 2012 15:58:56 +0000	[thread overview]
Message-ID: <4FEC7F40.8070707@gmail.com> (raw)
In-Reply-To: <20120628153308.GB29277@hmsreliant.think-freely.org>

On 06/28/2012 11:33 AM, Neil Horman wrote:
> On Wed, Jun 27, 2012 at 03:44:22PM -0400, Vlad Yasevich wrote:
>> On 06/27/2012 01:28 PM, Neil Horman wrote:
>>> On Wed, Jun 27, 2012 at 11:10:26AM -0400, Vlad Yasevich wrote:
>>>>
>>>> I didn't think of this yesterday, but I think it would be much
>>>> better to use pkt->transport here since you are adding the chunk to
>>>> the packet and it will go out on the transport of the packet.  You
>>>> are also guaranteed that pkt->transport is set.
>>>>
>>> I don't think it really matters, as the chunk transport is used to lookup the
>>> packet that we append to, and if the chunk transport is unset, its somewhat
>>> questionable as to weather we should bundle, but if packet->transport is set,
>>> its probably worth it to avoid the extra conditional.
>>>
>>
>> Just looked at the code flow.  chunk->transport may not be set until
>> the end of sctp_packet_append_chunk.  For new data, transport may
>> not be set.  For retransmitted data, transport is set to last
>> transport data was sent on.  So, we could be looking at the wrong
>> transport.  What you are trying to decided is if the current
>> transport we will be used can take the SACK, but you may not be
>> looking at the current transport. Looking at packet->transport is
>> the correct thing to do.
>>
>> -vlad
>>
> So, I agree after what you said above, that this is the right thing to do.  That
> said, I just tested the change with the SCTP_RR test in netperf, and it wound up
> giving me horrid performance (Its reporting about 5 transactions per second).
> It appears that whats happening is that, because the test alternates which
> transports it sends out, and because it waits for a sack of teh prior packet
> before it sends out the next transaction, we're always missing the bundle
> opportunity, and always waiting for the 200ms timeout for the sack to occur.
> While I know this is a pessimal case, it really seems bad to me.  It seems that
> because I was using chunk->transport previously, I luckily got the transport
> wrong sometimes, and it managed to bundle more often.
>
> So I'm not sure what to do here.  I had really wanted to avoid adding a sysctl
> here, but given that this is likely a corner cases, it seems that might be the
> best approach.  Do you have any thoughts?
>
> Neil
>

that's strange.  did you modify the SCTP_RR to alternate transports? 
Seems like responses in the RR test need to go the address of the sender 
so that we don't see things like:
Request (t) --->
             <--- Response (t2)

Should be:
Request (t1) --->
              <--- Response (t1)


-vlad

WARNING: multiple messages have this Message-ID (diff)
From: Vlad Yasevich <vyasevich@gmail.com>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: netdev@vger.kernel.org, "David S. Miller" <davem@davemloft.net>,
	linux-sctp@vger.kernel.org
Subject: Re: [PATCH v2] sctp: be more restrictive in transport selection on bundled sacks
Date: Thu, 28 Jun 2012 11:58:56 -0400	[thread overview]
Message-ID: <4FEC7F40.8070707@gmail.com> (raw)
In-Reply-To: <20120628153308.GB29277@hmsreliant.think-freely.org>

On 06/28/2012 11:33 AM, Neil Horman wrote:
> On Wed, Jun 27, 2012 at 03:44:22PM -0400, Vlad Yasevich wrote:
>> On 06/27/2012 01:28 PM, Neil Horman wrote:
>>> On Wed, Jun 27, 2012 at 11:10:26AM -0400, Vlad Yasevich wrote:
>>>>
>>>> I didn't think of this yesterday, but I think it would be much
>>>> better to use pkt->transport here since you are adding the chunk to
>>>> the packet and it will go out on the transport of the packet.  You
>>>> are also guaranteed that pkt->transport is set.
>>>>
>>> I don't think it really matters, as the chunk transport is used to lookup the
>>> packet that we append to, and if the chunk transport is unset, its somewhat
>>> questionable as to weather we should bundle, but if packet->transport is set,
>>> its probably worth it to avoid the extra conditional.
>>>
>>
>> Just looked at the code flow.  chunk->transport may not be set until
>> the end of sctp_packet_append_chunk.  For new data, transport may
>> not be set.  For retransmitted data, transport is set to last
>> transport data was sent on.  So, we could be looking at the wrong
>> transport.  What you are trying to decided is if the current
>> transport we will be used can take the SACK, but you may not be
>> looking at the current transport. Looking at packet->transport is
>> the correct thing to do.
>>
>> -vlad
>>
> So, I agree after what you said above, that this is the right thing to do.  That
> said, I just tested the change with the SCTP_RR test in netperf, and it wound up
> giving me horrid performance (Its reporting about 5 transactions per second).
> It appears that whats happening is that, because the test alternates which
> transports it sends out, and because it waits for a sack of teh prior packet
> before it sends out the next transaction, we're always missing the bundle
> opportunity, and always waiting for the 200ms timeout for the sack to occur.
> While I know this is a pessimal case, it really seems bad to me.  It seems that
> because I was using chunk->transport previously, I luckily got the transport
> wrong sometimes, and it managed to bundle more often.
>
> So I'm not sure what to do here.  I had really wanted to avoid adding a sysctl
> here, but given that this is likely a corner cases, it seems that might be the
> best approach.  Do you have any thoughts?
>
> Neil
>

that's strange.  did you modify the SCTP_RR to alternate transports? 
Seems like responses in the RR test need to go the address of the sender 
so that we don't see things like:
Request (t) --->
             <--- Response (t2)

Should be:
Request (t1) --->
              <--- Response (t1)


-vlad

  reply	other threads:[~2012-06-28 15:58 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-26 20:31 [PATCH] sctp: be mroe restrictive in transport selection on bundled sacks Neil Horman
2012-06-26 20:31 ` Neil Horman
2012-06-27  4:05 ` David Miller
2012-06-27  4:05   ` David Miller
2012-06-27 10:24   ` Neil Horman
2012-06-27 10:24     ` Neil Horman
2012-06-27 13:20     ` Vlad Yasevich
2012-06-27 13:20       ` Vlad Yasevich
2012-06-27 13:22       ` Neil Horman
2012-06-27 13:22         ` Neil Horman
2012-06-27 14:23 ` [PATCH v2] sctp: be more " Neil Horman
2012-06-27 15:10   ` Vlad Yasevich
2012-06-27 17:28     ` Neil Horman
2012-06-27 19:44       ` Vlad Yasevich
2012-06-27 19:44         ` Vlad Yasevich
2012-06-28 15:33         ` Neil Horman
2012-06-28 15:33           ` Neil Horman
2012-06-28 15:58           ` Vlad Yasevich [this message]
2012-06-28 15:58             ` Vlad Yasevich
2012-06-28 18:07             ` Neil Horman
2012-06-28 18:07               ` Neil Horman
2012-06-28 18:22               ` Vlad Yasevich
2012-06-28 18:22                 ` Vlad Yasevich
2012-06-28 18:36                 ` Neil Horman
2012-06-28 18:36                   ` Neil Horman
2012-06-28 20:14                 ` Neil Horman
2012-06-28 20:14                   ` Neil Horman
2012-06-29 16:34 ` [PATCH v3] " Neil Horman
2012-06-29 18:29   ` Vlad Yasevich
2012-06-29 18:43     ` Neil Horman
2012-06-29 19:15       ` Vlad Yasevich
2012-06-29 19:21         ` Neil Horman
2012-06-29 19:24 ` [PATCH v4] " Neil Horman
2012-06-29 19:24   ` Neil Horman
2012-06-29 20:15 ` [PATCH v5] " Neil Horman
2012-06-29 20:15   ` Neil Horman
2012-06-29 20:19   ` Vlad Yasevich
2012-06-29 20:19     ` Vlad Yasevich
2012-06-29 23:34   ` David Miller
2012-06-29 23:34     ` David Miller
2012-06-30 12:26     ` Neil Horman
2012-06-30 12:26       ` Neil Horman
2012-07-01  0:38       ` David Miller
2012-07-01  0:38         ` David Miller
2012-06-30 13:04 ` [PATCH v6] " Neil Horman
2012-06-30 13:04   ` Neil Horman
2012-07-01  0:39   ` David Miller
2012-07-01  0:39     ` David Miller
2012-07-01  3:17     ` Vlad Yasevich
2012-07-01  3:17       ` Vlad Yasevich
2012-07-01  5:44       ` David Miller
2012-07-01  5:44         ` David Miller
2012-07-01 12:47     ` Neil Horman
2012-07-01 12:47       ` Neil Horman
2012-07-01 21:43       ` David Miller
2012-07-01 21:43         ` David Miller
2012-07-01 23:44         ` Neil Horman
2012-07-01 23:44           ` Neil Horman
2012-07-02 12:25           ` Neil Horman
2012-07-02 12:25             ` Neil Horman
2012-07-03  0:10             ` David Miller
2012-07-03  0:10               ` David Miller
2012-07-03 18:45             ` Jan Ceuleers
2012-07-03 18:45               ` Jan Ceuleers
2012-07-03 23:42               ` Neil Horman
2012-07-03 23:42                 ` Neil Horman

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=4FEC7F40.8070707@gmail.com \
    --to=vyasevich@gmail.com \
    --cc=davem@davemloft.net \
    --cc=linux-sctp@vger.kernel.org \
    --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.