[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20150413.164050.281703475037013729.davem@davemloft.net>
Date: Mon, 13 Apr 2015 16:40:50 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: eric.dumazet@...il.com
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH v2 net-next] tcp/dccp: get rid of central timewait timer
From: Eric Dumazet <eric.dumazet@...il.com>
Date: Sun, 12 Apr 2015 18:51:09 -0700
> From: Eric Dumazet <edumazet@...gle.com>
>
> Using a timer wheel for timewait sockets was nice ~15 years ago when
> memory was expensive and machines had a single processor.
>
> This does not scale, code is ugly and source of huge latencies
> (Typically 30 ms have been seen, cpus spinning on death_lock spinlock.)
>
> We can afford to use an extra 64 bytes per timewait sock and spread
> timewait load to all cpus to have better behavior.
...
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
> ---
> v2: removed last inet_twsk_schedule() argument
> restored original SNMP counters : TW / TWKill
> fixed a compilation error reported by David
> Removed the problematic --- markers from ping in changelog
Applied, but:
> @@ -367,115 +269,15 @@ void inet_twsk_schedule(struct inet_timewait_sock *tw,
> * is greater than TS tick!) and detect old duplicates with help
> * of PAWS.
> */
> - slot = (timeo + (1 << INET_TWDR_RECYCLE_TICK) - 1) >> INET_TWDR_RECYCLE_TICK;
>
> - spin_lock(&twdr->death_lock);
> -
> - /* Unlink it, if it was scheduled */
> - if (inet_twsk_del_dead_node(tw))
> - twdr->tw_count--;
> - else
> + tw->tw_kill = timeo <= 4*HZ;
That last line has trailing whitespace which I removed.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists