Messages in this thread | | | Date | Tue, 14 Jun 2016 18:28:43 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [patch 13/20] timer: Switch to a non cascading wheel |
| |
On Tue, 14 Jun 2016, Ingo Molnar wrote: > * Thomas Gleixner <tglx@linutronix.de> wrote: > > On Mon, 13 Jun 2016, Peter Zijlstra wrote: > > > On Mon, Jun 13, 2016 at 08:41:00AM -0000, Thomas Gleixner wrote: > > > > + > > > > + /* Cascading, sigh... */ > > > > > > So given that userspace has no influence on timer period; can't we > > > simply fail to support timers longer than 30 minutes? > > > > > > In anything really arming timers _that_ long? > > > > Unfortunately yes. Networking being one of those. Real cascading happens once > > in a blue moon, but it happens. > > So I'd really prefer it if we added a few more levels, a hard limit and got rid of > the cascading once and for all! > > IMHO 'once in a blue moon' code is much worse than a bit more data overhead.
I agree. If we add two wheel levels then we end up with:
HZ 1000: 134217727 ms ~= 37 hours HZ 250: 536870908 ms ~= 149 hours HZ 100: 1342177270 ms ~= 372 hours
Looking through all my data I found exactly one timeout which is insanely large: 120 hours!
That's net/netfilter/nf_conntrack_core.c: setup_timer(&ct->timeout, death_by_timeout, (unsigned long)ct);
Anything else is way below 37 hours.
Thanks,
tglx
| |