From patchwork Wed Jan 9 02:14:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yuchung Cheng X-Patchwork-Id: 1022276 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="jvscIPWT"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43ZCPj62D8z9sMQ for ; Wed, 9 Jan 2019 13:14:49 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729674AbfAICOs (ORCPT ); Tue, 8 Jan 2019 21:14:48 -0500 Received: from mail-pl1-f193.google.com ([209.85.214.193]:33373 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728112AbfAICOs (ORCPT ); Tue, 8 Jan 2019 21:14:48 -0500 Received: by mail-pl1-f193.google.com with SMTP id z23so2832034plo.0 for ; Tue, 08 Jan 2019 18:14:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=w5FEt26Od3nKbwASp18kh+uxSgTcHp4SFo2q8ObyoTY=; b=jvscIPWTGnegNkQ3nnrTQ/WnXmer69z3+iVPJfCHdXOq7zVdWFoEjJJ0iKC/uhg3gz jzcaYS4rSODfZzHG1fuh6Js7+UxMxMv2LUgWNVg2zibkxmawYPxNVcmyhX8CoOUqk9Zw O5bCs4sQ7rt7Yfxrg7g1urkAXUjVN9FnCOmyqzVH1R/r4xjArCbXKWRKbzGFmpVp5p0e VNhXSGxal9jkx/EGTx6B8eQhmYKnUSo2ZruXDcEhYScVPmBfq5ijeaxVvnPiTxWoPpMK zvQhDKFgcSTVrDfYg1ELMRYxG9r7sBaDFThuimmCa7tVN2ux++Z/sVzUJqtXlyBx5rRM 9zyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=w5FEt26Od3nKbwASp18kh+uxSgTcHp4SFo2q8ObyoTY=; b=nhpBRUeypXfMnjczMt6Fl3utC9M8eEWyR0LiAKYAuj80kJBI8fcLXWoJeUfqLMspIn ZeocP6bfqly54km5ZzPWE6vXTylbCUI1AsNlDIpO5I9RInAZU+KG5pBDPhRL5tvAUzb8 M3yOi+Ksa+V/duHrX0lwARuzLWw/4q79wCuEidkuOukoffcc0l6nLY46L5GTnx7yUqUs uIwJhZywlzVgMEED5nR1yRyeMqbVJV9u7mYFduKKx4PGILsbDnqdL8PQ0HqaLOelNapM Q90QDnwr7TkUgfoG3WlDCN/9t/hwu1RF/cVIZU7asdUOYDsvPQoNFpkdBkKKn/Sw6aKB ZK4Q== X-Gm-Message-State: AJcUukeOnW+aUwqcCSECl3dlJ1ZV/dyz3KxdzuvcfZO7eoeMG1WkVrtQ S6xpSrMzufZUnmQg1aTOavA7Lw== X-Google-Smtp-Source: ALg8bN4MJ/ygRF4DKa5LtqNt3koYtqB3QDwq1/VNt+ImnwFP4QJaJDU1bay8CFPxj2eZrtJL9tJv9A== X-Received: by 2002:a17:902:8e8a:: with SMTP id bg10mr4230579plb.192.1547000087633; Tue, 08 Jan 2019 18:14:47 -0800 (PST) Received: from ycheng2.svl.corp.google.com ([2620:15c:2c4:201:d660:6c0b:8a4f:4c77]) by smtp.gmail.com with ESMTPSA id p77sm162148706pfi.85.2019.01.08.18.14.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Jan 2019 18:14:46 -0800 (PST) From: Yuchung Cheng To: davem@davemloft.net, edumazet@google.com Cc: netdev@vger.kernel.org, ncardwell@google.com, Yuchung Cheng Subject: [PATCH net] tcp: change txhash on SYN-data timeout Date: Tue, 8 Jan 2019 18:14:28 -0800 Message-Id: <20190109021428.6749-1-ycheng@google.com> X-Mailer: git-send-email 2.20.1.97.g81188d93c3-goog MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Previously upon SYN timeouts the sender recomputes the txhash to try a different path. However this does not apply on the initial timeout of SYN-data (active Fast Open). Therefore an active IPv6 Fast Open connection may incur one second RTO penalty to take on a new path after the second SYN retransmission uses a new flow label. This patch removes this undesirable behavior so Fast Open changes the flow label just like the regular connections. This also helps avoid falsely disabling Fast Open on the sender which triggers after two consecutive SYN timeouts on Fast Open. Signed-off-by: Yuchung Cheng Reviewed-by: Neal Cardwell --- net/ipv4/tcp_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c index f87dbc78b6bc..71a29e9c0620 100644 --- a/net/ipv4/tcp_timer.c +++ b/net/ipv4/tcp_timer.c @@ -226,7 +226,7 @@ static int tcp_write_timeout(struct sock *sk) if ((1 << sk->sk_state) & (TCPF_SYN_SENT | TCPF_SYN_RECV)) { if (icsk->icsk_retransmits) { dst_negative_advice(sk); - } else if (!tp->syn_data && !tp->syn_fastopen) { + } else { sk_rethink_txhash(sk); } retry_until = icsk->icsk_syn_retries ? : net->ipv4.sysctl_tcp_syn_retries;