From patchwork Thu Aug 9 16:38:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yuchung Cheng X-Patchwork-Id: 955726 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="axY9EtN1"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41mYpj5rPBz9s1c for ; Fri, 10 Aug 2018 02:38:21 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732382AbeHITD7 (ORCPT ); Thu, 9 Aug 2018 15:03:59 -0400 Received: from mail-pf1-f178.google.com ([209.85.210.178]:44139 "EHLO mail-pf1-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730419AbeHITD7 (ORCPT ); Thu, 9 Aug 2018 15:03:59 -0400 Received: by mail-pf1-f178.google.com with SMTP id k21-v6so3090250pff.11 for ; Thu, 09 Aug 2018 09:38:19 -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:mime-version :content-transfer-encoding; bh=EXdXFUnI0pdKnPM7fBVDIqvOvZnhaWq+Tor9/Eh4nDU=; b=axY9EtN1DDRChre0kocJjx5cgxu0MXaCEnI3sbI60fisAwVoWW+dL33fMkJPq14BpO L2LfTkPqiVW1a4UHu0ef7FujGqvyF2FQQx9g85w55CYrdkRo8iGI/jbitXC9xmt+muo+ jeNiWgyIW3mJZz1VIp8RTx2u+zph1uG3k6LWni0gOg+SNtjiTCUSHa2d8AilfNMSd8Fh /vZToMbFSQ1oTxVMwb/gkhTV8jf+O+MFqzHZgIZEbnOQf2/ZOiyO3kXFc80s8eXBktXf id2g9G35qTl9J9KNgLfXfs55Aan+Y4w4blU+MGkQsNP5oVcbXwRKyEwuvF7KW0lwtPXX 4VIA== 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=EXdXFUnI0pdKnPM7fBVDIqvOvZnhaWq+Tor9/Eh4nDU=; b=eNgkoDo5Oc7wUI3qwATkAEP+AsFGg3NOF1KqtXoCm7cz/WMUVvRw3kBjEoIw60yu9/ Skn05QarFwy3gMwWVqNMGzQMXvemIyJDgjGjPZYcQPL5cWDrcvZWMLiGDTDinPh4oH8K SCjDPzDUB5pjlTSk0QJIc8nAIcf+oPUBPWDoV1d5h3tj8C8H6En5Ze3tmGB8XdHmG+fJ bfTbQDUs9eWxW4SM2YO25FeB0yP/RSet7JBbIjxNug8UqrANb47KXO2ZUmwYHoqCiU5A FkpZfwEW1J/f6gEW5IKODQn3oPCE+7rLZpPwwSKKg5JArIjWeO+LQmrL5YHaQEup34dI CzJg== X-Gm-Message-State: AOUpUlFoYTq3aebBVsuaPrkB8k/vpaJS9Uvs8tg2gXetrtQ8CqxTCawA HMpFl2mdfOuOpW3k1yavs1po5A== X-Google-Smtp-Source: AA+uWPw0k7ucnQ0TH3XIB/Ln2i3T79nGbFTRvK6wK1WJ4x/C8hgrRedqZMNxp86QjjePSDDSEBYKRQ== X-Received: by 2002:a62:7886:: with SMTP id t128-v6mr3137007pfc.213.1533832697823; Thu, 09 Aug 2018 09:38:17 -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.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 Aug 2018 09:38:17 -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 0/4] new mechanism to ACK immediately Date: Thu, 9 Aug 2018 09:38:08 -0700 Message-Id: <20180809163812.58365-1-ycheng@google.com> X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-goog MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch is a follow-up feature improvement to the recent fixes on the performance issues in ECN (delayed) ACKs. Many of the fixes use tcp_enter_quickack_mode routine to force immediate ACKs. However the routine also reset tracking interactive session. This is not ideal because these immediate ACKs are required by protocol specifics unrelated to the interactiveness nature of the application. This patch set introduces a new flag to send a one-time immediate ACK without changing the status of interactive session tracking. With this patch set the immediate ACKs are generated upon these protocol states: 1) When a hole is repaired 2) When CE status changes between subsequent data packets received 3) When a data packet carries CWR flag Yuchung Cheng (4): tcp: mandate a one-time immediate ACK tcp: avoid resetting ACK timer in DCTCP tcp: always ACK immediately on hole repairs tcp: avoid resetting ACK timer upon receiving packet with ECN CWR flag include/net/inet_connection_sock.h | 3 ++- net/ipv4/tcp_dctcp.c | 4 ++-- net/ipv4/tcp_input.c | 16 +++++++++------- 3 files changed, 13 insertions(+), 10 deletions(-)