From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Borkmann Date: Wed, 16 Apr 2014 19:05:46 +0000 Subject: Re: [PATCH net] Revert "net: sctp: Fix a_rwnd/rwnd management to reflect real state of the receiver' Message-Id: <534ED48A.6040502@redhat.com> List-Id: References: <1397504717-19566-1-git-send-email-dborkman@redhat.com> <534C3DC2.9070604@gmail.com> <534E29D4.60100@nsn.com> <534E473E.20303@nsn.com> <534ED0FD.4040709@gmail.com> In-Reply-To: <534ED0FD.4040709@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Vlad Yasevich Cc: Alexander Sverdlin , ext Dongsheng Song , Matija Glavinic Pecotic , davem@davemloft.net, netdev@vger.kernel.org, "linux-sctp@vger.kernel.org" On 04/16/2014 08:50 PM, Vlad Yasevich wrote: > On 04/16/2014 05:02 AM, Alexander Sverdlin wrote: >> Hi Dongsheng! >> >> On 16/04/14 10:39, ext Dongsheng Song wrote: >>> >From my testing, netperf throughput from 600 Mbit/s drop to 6 Mbit/s, >>> the penalty is 99 %. >> >> The question was, do you see this as a problem of the new rwnd algorithm? >> If yes, how exactly? [ Default config ./test_timetolive from lksctp-test suite triggered that as well actually it appears, i.e. showing that the app never woke up from the 3 sec timeout. ] > The algorithm isn't wrong, but the implementation appears to have > a bug with window update SACKs. The problem is that > sk->sk_rmem_alloc is updated by the skb destructor when > skb is freed. This happens after we call sctp_assoc_rwnd_update() > which tries to send the update SACK. As a result, in default > config with per-socket accounting, the test > if ((asoc->base.sk->sk_rcvbuf - rx_count) > 0) > uses the wrong values for rx_count and results in advertisement > of decreased rwnd instead of what is really available.