From patchwork Thu Aug 9 16:38:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yuchung Cheng X-Patchwork-Id: 955728 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="cnAbcEPi"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41mYpn6g7hz9s1c for ; Fri, 10 Aug 2018 02:38:25 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732535AbeHITEE (ORCPT ); Thu, 9 Aug 2018 15:04:04 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:42133 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730419AbeHITEC (ORCPT ); Thu, 9 Aug 2018 15:04:02 -0400 Received: by mail-pg1-f195.google.com with SMTP id y4-v6so2995503pgp.9 for ; Thu, 09 Aug 2018 09:38:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+1HYaMJSruTWalFOl2amhXKG6xBVMsl+oJYPNFv1w7U=; b=cnAbcEPiU+B9m3F0YvRNEkfAd/I7UhlFk2/dd8Q4fxHvEamZeQps530e9WmhOStdjq km5UV8HPdFUxJeo+CETITvNusCKQ0tppdc/OpK0qTg+R2H1hMqfW0flQgenNXin3RJxU quZiKkZRDnG+8W1dryXvoGh/IilJ+Uzj7iQmSoY8kiqKkpE6tl0tYqa42MJZiHqSPbwO +HCBMIghHTTjbsvumlr0w8twr6JXZsyyz8ntBDqis0q/RWCHOS8hN1OlE9ds7KV6RDZA TRp3Nl5pwKa0x2HwK/JEgjvkOLozQse6CqPs+4RCECM92UQr7gF+mUd2Y8gNq35bRJEh olXw== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=+1HYaMJSruTWalFOl2amhXKG6xBVMsl+oJYPNFv1w7U=; b=BHN4q4lCs0cIkw/IhhPcEnl219CXfFgMqAIvF1eVCOz2Edi4csSGx7dNOL0TQ9M2kK QtMxxXPzKT2byHiGhIK6V7wd/+TurYCY1LkRdFSfMYM18wau634XXeaurNzJEmAnEJy9 QrNIvHp06t6N4zNs2WKTDZmnXHG6MmGnhPG/nhL3yAKmr4nBPtGPua9K49BiVcK6wolx QqCmlpL2aB3VKRqTyQbadrglX8bLcpiEr54rnY6uJgi+0LLSEMwMZzmEJOV62ZLeP9A/ VsbQYxHdoWYHBxtRUwX2xZ/Wj8Lw+I7U9Ra8h25mmeFBEmmT2qdDX7SfAdo9K6/SXRJS X5+w== X-Gm-Message-State: AOUpUlGDjRPXViqQv3puwbdYy6vh6cvgDzYc+qZuRJ7EBAW95WmUayF/ +TMynDB4IaEKXzNnk7OmY44pVQ== X-Google-Smtp-Source: AA+uWPxAvgc6unlyShXL+FFtT3mcOgPJZdtYwuMLxNI821OK6b9x7TQF+h+tSFtl7a32q+DrYBUJoQ== X-Received: by 2002:a63:4506:: with SMTP id s6-v6mr2937826pga.422.1533832701501; Thu, 09 Aug 2018 09:38:21 -0700 (PDT) Received: from ycheng2.svl.corp.google.com ([2620:15c:2c4:201:d660:6c0b:8a4f:4c77]) by smtp.gmail.com with ESMTPSA id m30-v6sm9741556pff.121.2018.08.09.09.38.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 Aug 2018 09:38:19 -0700 (PDT) From: Yuchung Cheng To: davem@davemloft.net, edumazet@google.com Cc: netdev@vger.kernel.org, ncardwell@google.com, brakmo@fb.com, weiwan@google.com, Yuchung Cheng Subject: [PATCH net-next 2/4] tcp: avoid resetting ACK timer in DCTCP Date: Thu, 9 Aug 2018 09:38:10 -0700 Message-Id: <20180809163812.58365-3-ycheng@google.com> X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-goog In-Reply-To: <20180809163812.58365-1-ycheng@google.com> References: <20180809163812.58365-1-ycheng@google.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The recent fix of acking immediately in DCTCP on CE status change has an undesirable side-effect: it also resets TCP ack timer and disables pingpong mode (interactive session). But the CE status change has nothing to do with them. This patch addresses that by using the new one-time immediate ACK flag instead of calling tcp_enter_quickack_mode(). Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Wei Wang Signed-off-by: Eric Dumazet --- net/ipv4/tcp_dctcp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/ipv4/tcp_dctcp.c b/net/ipv4/tcp_dctcp.c index 8b637f9f23a2..ca61e2a659e7 100644 --- a/net/ipv4/tcp_dctcp.c +++ b/net/ipv4/tcp_dctcp.c @@ -136,7 +136,7 @@ static void dctcp_ce_state_0_to_1(struct sock *sk) */ if (inet_csk(sk)->icsk_ack.pending & ICSK_ACK_TIMER) __tcp_send_ack(sk, ca->prior_rcv_nxt); - tcp_enter_quickack_mode(sk, 1); + inet_csk(sk)->icsk_ack.pending |= ICSK_ACK_NOW; } ca->prior_rcv_nxt = tp->rcv_nxt; @@ -157,7 +157,7 @@ static void dctcp_ce_state_1_to_0(struct sock *sk) */ if (inet_csk(sk)->icsk_ack.pending & ICSK_ACK_TIMER) __tcp_send_ack(sk, ca->prior_rcv_nxt); - tcp_enter_quickack_mode(sk, 1); + inet_csk(sk)->icsk_ack.pending |= ICSK_ACK_NOW; } ca->prior_rcv_nxt = tp->rcv_nxt;