From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932768AbcFAQmN (ORCPT ); Wed, 1 Jun 2016 12:42:13 -0400 Received: from mail-db3on0141.outbound.protection.outlook.com ([157.55.234.141]:28722 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932504AbcFAQmE (ORCPT ); Wed, 1 Jun 2016 12:42:04 -0400 X-Greylist: delayed 938 seconds by postgrey-1.27 at vger.kernel.org; Wed, 01 Jun 2016 12:42:03 EDT Authentication-Results: openvz.org; dkim=none (message not signed) header.d=none;openvz.org; dmarc=none action=none header.from=virtuozzo.com; Date: Wed, 1 Jun 2016 09:26:06 -0700 From: Andrew Vagin To: Andrey Vagin CC: , , , Pavel Emelyanov , "David S. Miller" , Alexey Kuznetsov , James Morris , Hideaki YOSHIFUJI , "Patrick McHardy" Subject: Re: [PATCH] tcp: extend window to fit all restored unacked data in a send queue Message-ID: <20160601162605.GC22074@outlook.office365.com> References: <1464706956-29291-1-git-send-email-avagin@openvz.org> MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Disposition: inline In-Reply-To: <1464706956-29291-1-git-send-email-avagin@openvz.org> User-Agent: Mutt/1.6.0 (2016-04-01) X-Originating-IP: [50.125.118.62] X-ClientProxiedBy: CY1PR13CA0001.namprd13.prod.outlook.com (10.162.30.139) To VI1PR0801MB1438.eurprd08.prod.outlook.com (10.167.210.18) X-MS-Office365-Filtering-Correlation-Id: 7da9fb1f-e477-4560-4b71-08d38a3977b6 X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1438;2:+Ua/txKE5qI8wCuZl15TFCdmNYO6UP5d8EIXETP4w3iHE/MynGimjPKBRDe7vrCFXLbXczRQ6002Od7W7nByz1kl+KdX+nHnzAEMeZuKPJoyj9IbDe9vViOAkmRoPzg2jlWRaYrEnF368iguZdiZhesaNmAhJ0zNgNWfOCI0mp0S9gUwojDumrrpOMloecyT;3:bgfWb4Dou/WhcTlfCpm8W439vbQt5jb++QTmT+uii8/W507JcZcRAz1V6fOYDaV60yVJXDcCDSaUteeDdG5CyaetvVy2TZoxAXtlzINa0S9IHSG69zn7Vxs7UamsT8HL;25:FGx09/2U2nLqUABbHuBQSzM9iXWdANW5Fx+ySlvCJEboP41kKKzemeCr7SrY7Fr/kkE+BSNpeqU0nRvu2fr8IT7LULVAWUvbAXvzx9axXLYdDvXnUNyhMQHXI29jCsartoTdaR0lESgDml+Z2qnQ6jprqhx7Qcrj/HIyNBFI6HZFhUr/DOHIRmvn//zsb07kBdXewTlcKMmh00nJ2PlHGCRsRxlnMxNvCnbNfgyadN0ObMFtog1BL5VtY8RA2NFQeROPoDlRNawVLE1qBE2lv97QmwbvR7RbVSax2WusDtgd5DJYkwkPDHTChQDpyTsFxIKOHeoe0bQz/rbTUUpXCyntN1rzt5NXTqXl7xQd5NIn9VGN/PPrgZbqeGW5VxmJB0xMizoYZ9Ifs7rJQX+qvA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0801MB1438; X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(146806924760085); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041072)(6043046);SRVR:VI1PR0801MB1438;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0801MB1438; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1438;4:CpRTlce3dG4s4scH5ALIJYcK7/z//xWeosSLahBfJOB2LUBO6dfTMRF2hpb33meinahLJJamAEdP+MSc3e2ljvfIzU4cLFu/5V1dQX+GHVAkLkxPh1llhBBGo5tuaUsHHPmOUIqnw2eq8irMbJEamd5USUhWu4BKMoCwyjvnQ/Gr0OK9mLWx41GQ+MqiOC197p+IBJR6SVBKW3BTduZa6k+cVZuZRMpHMFUDnawM++kBR1IhpV3Jkn7QtEjaWOjYhQgWLYZHM9c+hptGMsOwzGvjzzKnbBnJRqxi4MmFZgxlDEHiP2P6PnJZiwLEVAkuLL+y9aqQyMGj33+RZhcPs3MSLMqZAXSj7asTsFmVYy3Te+VKJhX0Xd5scAFYiI0fbo7+dlMOSYK0fBamWNu9Om+xlbYNnBdIukObbcAxhDqbPCVizyyjzCXjy2GfsB771wqx4KHsf6eKT6/CPpC5vw== X-Forefront-PRVS: 096029FF66 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(24454002)(50466002)(5004730100002)(9686002)(2950100001)(189998001)(4477795004)(586003)(5008740100001)(4001350100001)(4001450100002)(110136002)(77096005)(8676002)(81166006)(23686003)(92566002)(3846002)(33656002)(47776003)(83506001)(6116002)(4326007)(19580395003)(53416004)(42186005)(54356999)(66066001)(1076002)(86362001)(2906002)(19580405001)(50986999)(76176999)(26326002);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0801MB1438;H:outlook.office365.com;FPR:;SPF:None;MLV:nov;PTR:InfoNoRecords;LANG:en; X-Microsoft-Exchange-Diagnostics: =?koi8-r?Q?1;VI1PR0801MB1438;23:JmYVd/gI+Dd1+AJl4Z981kgEuBP7pPf8+LaPEKwnX?= =?koi8-r?Q?sz9dFSutO9t1pu0wv1QYjPSuOL91fE3VJW/sF+Ft7w83vFO6PGPo0TQtJv9BM0?= =?koi8-r?Q?fWSApzPynIVFcswUPiWkBEgsUTbldY/Y5jsuRxPmZLpAsCrZPf4k28KDJ5E0kZ?= =?koi8-r?Q?KRgbEmVjHH+AYbZvhKrLsi5hWU+EZpMPodBUzDKckPvLiYPKCRn2i4DhrDgiRW?= =?koi8-r?Q?JAqcyZIko76Ufo0GQjzbmuPPaq8pnfPOnmMbG1FEAVxbyJ6/M3bC1t8r3P5q3e?= =?koi8-r?Q?l3Xi+uuts6EsG+GlyNsVFarRiLDCPGh6J1TyZtZINwq4LyWKIDZgO7hw1zp4Mz?= =?koi8-r?Q?uyi6M5pcfBPCeUJeH3FiKDpWB3OhgIv0C6VoGBeK9CaVwK30yJ3HrudYzbSTxM?= =?koi8-r?Q?l02JkxwPUhGuAu5Du9PConGqGKkoLNa1kGAF+ltzEmmDT5qq7gRi4YjygHpBuH?= =?koi8-r?Q?+UGuyFmILqJvMu7uhFtDhdFctNGvz15IDwrXOTLOTNEOtkaJ1Ht3xXAtehFCz0?= =?koi8-r?Q?UpuOMVw+z21QgiyF4a8uBv42r9UJLmOotyiGop7hN2/Mkqxr6GsZ4JhL04mxzK?= =?koi8-r?Q?mrVKEM2l8i+uIjCfJCGXWdGtXT2s/Xj00T640h32PjfpphZYrpy7MbIT9d0jPP?= =?koi8-r?Q?fkpPJX9dXayJGbrCcglIdsddYo9WK6MrWa9GMblMbJhyiXDFfM/V7JgCz1hRa7?= =?koi8-r?Q?SBycJ9KifsZjfCxdq23c/6TyQGd7eOdXoQ0GRVvKyqjq3g82pKXX8peHkQPFhc?= =?koi8-r?Q?vQUcKEeKGVnO9MUjTlXHzVxYyT9nDHJmoyaZGU91yHDOZBuPDTa7NEdy4UjdiO?= =?koi8-r?Q?p5p585xG1Fpbs4MqaFoWl7u2XcpZhv0djzJMinJnZZo9OYPx3Tb7y7/kht5gkU?= =?koi8-r?Q?zNPOe3ccKm39HGdIZnVFRviFAuxiBeGphbhmwMoMCwVM1ejs+RYYEre84T2fZx?= =?koi8-r?Q?1YhttOvZkbeLMn6hQuphCuRZtuc6B7khzpzu0zJ25/x6Vl9lW16lw?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1438;5:37RinjeLPolYVf8moR/Cz8uaLTe9Fos+6sDc8hOc/+7Esi1BSKcvk6YXvjkW4Ny34zcOCytZ9gGgZCHeQDCjhRve3Gs2CA8+tyfFhaYTXJeeyCFWNvLbuecQ59Bfdarbi3vPEvE0foXEKVfhAovrGA==;24:LUyI+AowcsPZvuyu2M/WgijHKvEzjkEV+n81Iobh2iXrcysLUIQso0QDYEz0HZe7qv3MZfMPpJdNtFs8jQi4MH9z771n7/nKxz+0HUFZhk0=;7:FZmbLkeN5S64f5XaFF1vd9ofCIfE6ZeVNVMCI/nwK3GetobjtV3I0CLBh3LwuyM8ntFsj7lWdkcPEVmF8WCdZdhFo1+IzY/5W4hKBGDAVQZid5V75wa4dGTxZPduYcGn9NmEum6umJ1v49cnQkKnpsNL+E4x+MC7NOJ6myYKGxP50rn+tQ5mTExY3Vhy8ywL;20:tyQ6/9HJh8pii0va1aacpqdwFzhInsnAcaSBLJu4J7xmU+bFEsw6oU2wMvFlB2lI/cPlMMnS3RZV2/vPA25tOreJEeHjEfUNWFH7vvxVNfdv1z7jTo7I4GOtYx2k9VMfF4WHJdi4KflEtybKJnm6/f94o0iMprGqp3aNeXLUJWo= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2016 16:26:18.9638 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1438 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 31, 2016 at 08:02:36AM -0700, Andrey Vagin wrote: > Data from a send queue is sent only if there is enough space in a > window, so when we restore unacked data, we need to expand a window to > fit this data. > > Currently we don't do this and tcp_acceptable_seq() returns > tcp_wnd_end(tp) instead of tp->snd_nxt. The other side drops packets > with this seq, becuse tcp_sequence() returns false (seq < tp->rcv_nxt). It's a bad idea to change snd_wnd without changing snd_wl1 and max_window. Alexey suggests to save and restore these parametrs, because they were set by a remote side. So pls drop this patch. > > Cc: Pavel Emelyanov > Cc: "David S. Miller" > Cc: Alexey Kuznetsov > Cc: James Morris > Cc: Hideaki YOSHIFUJI > Cc: Patrick McHardy > Signed-off-by: Andrey Vagin > --- > net/ipv4/tcp_output.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c > index 79a03b8..b36f968 100644 > --- a/net/ipv4/tcp_output.c > +++ b/net/ipv4/tcp_output.c > @@ -75,6 +75,10 @@ static void tcp_event_new_data_sent(struct sock *sk, const struct sk_buff *skb) > tcp_advance_send_head(sk, skb); > tp->snd_nxt = TCP_SKB_CB(skb)->end_seq; > > + /* All sent data have to fit into the window */ > + if (unlikely(tp->repair) && before(tcp_wnd_end(tp), tp->snd_nxt)) > + tp->snd_wnd = tp->snd_nxt - tp->snd_una; > + > tp->packets_out += tcp_skb_pcount(skb); > if (!prior_packets || icsk->icsk_pending == ICSK_TIME_EARLY_RETRANS || > icsk->icsk_pending == ICSK_TIME_LOSS_PROBE) { > -- > 2.5.5 >