From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752861AbcFNUep (ORCPT ); Tue, 14 Jun 2016 16:34:45 -0400 Received: from bombadil.infradead.org ([198.137.202.9]:50414 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751597AbcFNUen (ORCPT ); Tue, 14 Jun 2016 16:34:43 -0400 Date: Tue, 14 Jun 2016 22:34:34 +0200 From: Peter Zijlstra To: Thomas Gleixner Cc: Arjan van de Ven , Ingo Molnar , LKML , "Paul E. McKenney" , Eric Dumazet , Frederic Weisbecker , Chris Mason , Arjan van de Ven , rt@linutronix.de, Linus Torvalds Subject: Re: [patch 13/20] timer: Switch to a non cascading wheel Message-ID: <20160614203434.GH30154@twins.programming.kicks-ass.net> References: <20160613070440.950649741@linutronix.de> <20160613075929.282143900@linutronix.de> <20160613114005.GY30909@twins.programming.kicks-ass.net> <20160614101144.GA849@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 14, 2016 at 08:05:49PM +0200, Thomas Gleixner wrote: > On Tue, 14 Jun 2016, Arjan van de Ven wrote: > > > evaluating a 120 hours timer ever 37 hours to see if it should fire... > > not too horrid. > > Well that thing is doing weird stuff anyway: > > swapper 0 [001] 1789995.305532: timer:timer_start: timer=0xffff8800c8346920 function=death_by_timeout expires=4850639994 [timeout=108000000] You're running a HZ=250 kernel, right? inet/netfilter/nf_conntrack_proto_tcp.c: #define SECS * HZ #define MINS * 60 SECS #define HOURS * 60 MINS #define DAYS * 24 HOURS static unsigned int tcp_timeouts[TCP_CONNTRACK_TIMEOUT_MAX] __read_mostly = { [TCP_CONNTRACK_SYN_SENT] = 2 MINS, [TCP_CONNTRACK_SYN_RECV] = 60 SECS, [TCP_CONNTRACK_ESTABLISHED] = 5 DAYS, ^^^^^^ that ends up being 108000000 for HZ == 250. [TCP_CONNTRACK_FIN_WAIT] = 2 MINS, [TCP_CONNTRACK_CLOSE_WAIT] = 60 SECS, [TCP_CONNTRACK_LAST_ACK] = 30 SECS, [TCP_CONNTRACK_TIME_WAIT] = 2 MINS, [TCP_CONNTRACK_CLOSE] = 10 SECS, [TCP_CONNTRACK_SYN_SENT2] = 2 MINS, /* RFC1122 says the R2 limit should be at least 100 seconds. Linux uses 15 packets as limit, which corresponds to ~13-30min depending on RTO. */ [TCP_CONNTRACK_RETRANS] = 5 MINS, [TCP_CONNTRACK_UNACK] = 5 MINS, }; > ssh 3870 [001] 1790025.284704: timer:timer_cancel: timer=0xffff8800c8346920 > ssh 3870 [001] 1790025.284707: timer:timer_start: timer=0xffff8800c8346920 function=death_by_timeout expires=4742722493 [timeout=75000] And that one would then be one of the 5 MINS ones.