Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp2879839imm; Mon, 16 Jul 2018 16:19:07 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdOgYgNTKyalFZ+lmzXCyODZKAxgX6SOF/6yJ7PBghtiuxp2k+fK+DCE1x+Fp/avM6ALAbM X-Received: by 2002:a17:902:1a9:: with SMTP id b38-v6mr18159678plb.89.1531783147269; Mon, 16 Jul 2018 16:19:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531783147; cv=none; d=google.com; s=arc-20160816; b=aMxFBKuGobIflmAOZg5LSP8V7ZnqfEtb0PztK4HZ7UFS19fiIdqe1RU3fmWk9e9kjy /7IDnQz0MRnttJvZMhyijmUNT3CdBkIxm2Jo9fb61V5s8fxlcIQx4FAjoO15YHXhK/rh CBelFqdjJrSxAg7WkJ/zf6KzI0Nr68zOge8vxW56D9p+MCUQAweL9DXk8snd5R3b68a/ ZYXiT8p6Kr4Y+d0wBlzFzsdRlWnEk0+1YBGM8/jkY3xLhz2IdkgRGy1j1FZeZBkFbhcX 2ackYbNVHiOSqOglQlXIl0eX4U+vKzgANB42lIA2GoZMcR+RG39LfykvTWvNLPxU4wfA r2Sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=xjd2nmE9gXC4UcmwyvRyAn4YxHLRqgMkLAyhWEivx44=; b=XfrCSC0+Ey1/7JcS/fu7NtMCS8qZtT5CRgwBb/Ztg7CuSBw1cucrSRE3VHvxqAb/OJ oYybI115EXTTgS+4uKnXvqHIP1q9s1w4kuxRctByDH9RYnty+4MXVz/lZy7sXRvEqzjT dYXhqecfNmxnmhEYa9JCNrULivlBi9GIcsFEmAmr5S20gwTIxsWRRwjf3aK87irjUC+K YGnVSk45nmB/yyeBk87Ljd0u0CZwsZYbIAZKjm8xWmZpA8TXktUL3IZFDGZPgyl1L8ej MyL7CsQ8voEEISwkRxF1kWtDP4DP8A9nJagOztRlDrZpi7CScgpAB2bKOqgQoyWzqf7w 35YQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=SeSH9tki; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d35-v6si31651770pla.116.2018.07.16.16.18.51; Mon, 16 Jul 2018 16:19:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=SeSH9tki; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729811AbeGPXrz (ORCPT + 99 others); Mon, 16 Jul 2018 19:47:55 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:33335 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728794AbeGPXrz (ORCPT ); Mon, 16 Jul 2018 19:47:55 -0400 Received: by mail-wr1-f65.google.com with SMTP id g6-v6so24589153wrp.0; Mon, 16 Jul 2018 16:18:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=xjd2nmE9gXC4UcmwyvRyAn4YxHLRqgMkLAyhWEivx44=; b=SeSH9tki6eVyVjwv/kZGY85eg3k3LSXOsAFwmS/Weuut6IRPoUcNHSLkKqy4qrcdrr 2a5RRjwXaZwECTz8bc1LghOfzWOp/MxN8vFGqRRR4Lydt7je5KVmLXPatjkKVQiJ68bg YvnQwW2IV4FZbz0uDchI+r/o7FUpaJdGBBrA7pPN/4DysFLqGbsiEdQ1at7EorMjRrFU LP1o77NG8E3iHUAh3WJcMw+U/251+nsZ83mHW065+a0EbY9sRuB38p3ulg2Sbmpb2ECx Fuv4ehzItHn/gVDJNBfV/LsYC0NRBKyTiiHVPfOG78R2vBmqx2r/PgnmOcuwLnx9/iZ7 e7Jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=xjd2nmE9gXC4UcmwyvRyAn4YxHLRqgMkLAyhWEivx44=; b=ep8rPE0WAHSL6rYV+Fqqe96GyYVbiuWUH5gEWcPqb/uVN6mgGwAaX/+ZequDt/6p3n DC0OjQwAduEmxcNLFZuRissdbtN5/KuduY+0MDMFsLwiotxNn9XHpa1hw9jHtOezikLy CfcvdGU8sVfmLmLYS4L9Dcfxjgs0IfyHu/0cgrzZghn7cjSL/XGABroNFVNqaq3DY5x9 fTboci2jQ17d5ZRqp9CbsqTjTiWPirJ7yEGS1kbWKAYdJCP6ofIauw33wuFJTG5uez8y hKiKXGp5zEAaKKyT66uAECVVY6PgYEf7QixaI/TFHEYGqYARFA3oF5xutlrMwl7iBthk RO2A== X-Gm-Message-State: AOUpUlFjStB1iAFoBWl8kMv6Kk51UTLSZNzi336tJw0BQ0C+jyhM5Vn6 qh5+BRLeJdSTw+8mGLcKuYdh8mAnLVJDqn2KwIg= X-Received: by 2002:adf:fec8:: with SMTP id q8-v6mr9935637wrs.164.1531783096308; Mon, 16 Jul 2018 16:18:16 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a1c:8a8a:0:0:0:0:0 with HTTP; Mon, 16 Jul 2018 16:17:35 -0700 (PDT) In-Reply-To: <9a96cc7d-e7bd-5be2-9ce4-e74918773560@gmail.com> References: <20180713004919.18608-1-jmaxwell37@gmail.com> <9a96cc7d-e7bd-5be2-9ce4-e74918773560@gmail.com> From: Jonathan Maxwell Date: Tue, 17 Jul 2018 09:17:35 +1000 Message-ID: Subject: Re: [net-next, 3/3] tcp: convert icsk_user_timeout from jiffies to msecs To: Eric Dumazet Cc: David Miller , Eric Dumazet , Neal Cardwell , David Laight , kuznet , yoshfuji , Netdev , LKML , Jon Maxwell Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Sorry Eric, my bad. I'll do another version with the indentation fixed and reformatting of min_t() and resubmit. On Tue, Jul 17, 2018 at 2:00 AM, Eric Dumazet wrote: > > > On 07/12/2018 05:49 PM, Jon Maxwell wrote: >> The final patch in this series. Create the tcp_clamp_rto_to_user_timeout() >> helper routine. To calculate the correct rto, so that the TCP_USER_TIMEOUT >> socket option is more accurate. Taking suggestions and feedback into account >> from Eric Dumazet, Neal Cardwell and David Laight. Due to the 1st commit we >> can avoid the msecs_to_jiffies() and jiffies_to_msecs() dance. >> >> Signed-off-by: Jon Maxwell >> --- >> net/ipv4/tcp_timer.c | 19 ++++++++++++++++++- >> 1 file changed, 18 insertions(+), 1 deletion(-) >> >> diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c >> index 8ab8c9645294..d4d4b30a6bec 100644 >> --- a/net/ipv4/tcp_timer.c >> +++ b/net/ipv4/tcp_timer.c >> @@ -36,6 +36,22 @@ u32 tcp_retransmit_stamp(const struct sock *sk) >> return start_ts; >> } >> >> +static u32 tcp_clamp_rto_to_user_timeout(const struct sock *sk) >> +{ >> + struct inet_connection_sock *icsk = inet_csk(sk); >> + u32 elapsed, start_ts; >> + >> + start_ts = tcp_retransmit_stamp(sk); >> + if (!icsk->icsk_user_timeout || !start_ts) >> + return icsk->icsk_rto; >> + elapsed = tcp_time_stamp(tcp_sk(sk)) - start_ts; >> + if (elapsed >= icsk->icsk_user_timeout) >> + return 1; /* user timeout has passed; fire ASAP */ >> + else >> + return min_t(u32, icsk->icsk_rto, msecs_to_jiffies(icsk->icsk_user_timeout - >> + elapsed)); > > if (elapsed >= icsk->icsk_user_timeout) > return 1; /* user timeout has passed; fire ASAP */ > > return min_t(u32, icsk->icsk_rto, msecs_to_jiffies(icsk->icsk_user_timeout - elapsed)); > > Thanks !