Eric Dumazet
4b9d9be839
inetpeer: remove unused list
...
Andi Kleen and Tim Chen reported huge contention on inetpeer
unused_peers.lock, on memcached workload on a 40 core machine, with
disabled route cache.
It appears we constantly flip peers refcnt between 0 and 1 values, and
we must insert/remove peers from unused_peers.list, holding a contended
spinlock.
Remove this list completely and perform a garbage collection on-the-fly,
at lookup time, using the expired nodes we met during the tree
traversal.
This removes a lot of code, makes locking more standard, and obsoletes
two sysctls (inet_peer_gc_mintime and inet_peer_gc_maxtime). This also
removes two pointers in inet_peer structure.
There is still a false sharing effect because refcnt is in first cache
line of object [were the links and keys used by lookups are located], we
might move it at the end of inet_peer structure to let this first cache
line mostly read by cpus.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com >
CC: Andi Kleen <andi@firstfloor.org >
CC: Tim Chen <tim.c.chen@linux.intel.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2011-06-08 17:05:30 -07:00
..
2011-05-25 08:46:38 -05:00
2011-06-06 22:55:11 -07:00
2011-06-01 21:15:38 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-04-24 10:54:56 -07:00
2011-05-13 16:08:13 -04:00
2011-05-02 15:26:28 -07:00
2011-06-05 14:33:40 -07:00
2010-08-20 01:42:59 -07:00
2010-06-11 18:37:08 -07:00
2011-04-24 10:54:56 -07:00
2009-08-12 21:54:50 -07:00
2011-04-24 10:54:56 -07:00
2011-04-24 10:54:56 -07:00
2011-01-13 21:48:25 -08:00
2011-01-10 16:10:37 -08:00
2011-04-24 10:54:56 -07:00
2010-03-30 22:02:32 +09:00
2009-03-24 23:32:03 -07:00
2011-06-01 15:12:28 -04:00
2008-11-19 15:44:53 -08:00
2009-03-28 15:01:36 +11:00
2010-10-07 09:43:45 +02:00
2011-05-05 11:10:14 -07:00
2010-12-31 10:47:46 -08:00
2011-03-02 21:58:55 -08:00
2010-11-08 13:50:08 -08:00
2011-03-12 15:08:55 -08:00
2010-06-03 03:21:52 -07:00
2011-03-12 15:08:55 -08:00
2011-03-12 15:08:55 -08:00
2009-03-21 19:06:54 -07:00
2011-01-26 20:51:05 -08:00
2011-05-24 13:50:52 -04:00
2009-03-27 00:16:21 -07:00
2010-10-27 11:37:32 -07:00
2011-03-31 18:03:35 -07:00
2011-05-12 17:46:56 -04:00
2011-03-31 11:26:23 -03:00
2011-05-10 10:16:21 +02:00
2010-08-21 23:05:39 -07:00
2011-02-04 15:59:53 -08:00
2011-01-28 15:44:29 -05:00
2009-11-06 14:32:18 +03:00
2009-07-23 17:08:51 +04:00
2011-05-19 16:21:22 -04:00
2011-05-08 15:28:28 -07:00
2009-12-08 20:17:51 -08:00
2010-07-12 20:21:46 -07:00
2011-05-18 18:32:03 -04:00
2011-05-12 18:52:14 -04:00
2010-06-30 13:44:29 -07:00
2010-10-21 13:06:43 +02:00
2011-05-06 15:37:57 -07:00
2010-12-09 20:05:58 -08:00
2011-06-08 17:05:30 -07:00
2011-04-24 10:54:56 -07:00
2011-04-24 10:54:56 -07:00
2010-10-25 13:09:45 -07:00
2011-04-14 15:05:22 -07:00
2011-05-27 13:37:46 +02:00
2011-06-08 17:05:30 -07:00
2010-02-16 23:05:38 -08:00
2008-06-11 21:00:38 -07:00
2010-10-27 11:37:32 -07:00
2011-05-19 16:21:22 -04:00
2011-04-24 10:54:56 -07:00
2011-03-31 11:26:23 -03:00
2010-07-26 15:09:04 -04:00
2009-12-26 20:43:57 -08:00
2008-02-29 11:46:17 -08:00
2011-05-13 15:13:24 -04:00
2008-03-31 21:02:47 -07:00
2009-12-26 20:46:28 -08:00
2011-06-07 14:41:36 -04:00
2010-06-03 03:21:52 -07:00
2010-04-23 13:35:55 +09:00
2011-04-24 10:54:56 -07:00
2010-11-19 13:13:47 -08:00
2011-05-27 11:16:27 -07:00
2011-05-27 13:41:33 -04:00
2009-01-06 11:38:15 -07:00
2011-04-24 10:54:56 -07:00
2010-03-30 22:02:32 +09:00
2011-05-10 10:16:21 +02:00
2010-03-30 22:02:32 +09:00
2009-08-19 23:08:22 +04:00
2011-05-17 14:16:58 -04:00
2010-12-21 12:43:16 -08:00
2011-03-31 11:26:23 -03:00
2011-01-24 15:32:47 -08:00
2009-03-21 19:06:50 -07:00
2010-09-08 13:42:22 -07:00
2011-04-24 10:54:56 -07:00
2011-01-12 19:00:39 -08:00
2010-11-22 15:48:51 -05:00
2010-01-17 19:09:39 -08:00
2011-03-27 17:59:04 -07:00
2011-05-18 18:42:43 -04:00
2010-11-27 22:56:08 -08:00
2011-03-24 00:13:14 -07:00
2010-11-24 11:16:43 -08:00
2011-05-19 16:21:22 -04:00
2011-06-06 22:55:11 -07:00
2008-07-05 21:25:39 -07:00
2011-06-08 17:05:30 -07:00
2010-12-01 18:09:13 -08:00
2011-04-24 10:54:56 -07:00
2011-03-01 12:35:03 -08:00
2011-03-01 12:35:03 -08:00
2009-10-07 16:39:43 -04:00
2011-04-24 10:54:56 -07:00
2011-03-31 11:26:23 -03:00
2010-11-28 11:12:20 -08:00
2010-04-22 16:12:36 -07:00
2011-05-11 14:26:58 -04:00