aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ipv4/route.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 283a72247e5e..2dc6dbb28467 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -210,17 +210,22 @@ struct rt_hash_bucket {
210/* 210/*
211 * Instead of using one spinlock for each rt_hash_bucket, we use a table of spinlocks 211 * Instead of using one spinlock for each rt_hash_bucket, we use a table of spinlocks
212 * The size of this table is a power of two and depends on the number of CPUS. 212 * The size of this table is a power of two and depends on the number of CPUS.
213 * (on lockdep we have a quite big spinlock_t, so keep the size down there)
213 */ 214 */
214#if NR_CPUS >= 32 215#ifdef CONFIG_LOCKDEP
215#define RT_HASH_LOCK_SZ 4096 216# define RT_HASH_LOCK_SZ 256
216#elif NR_CPUS >= 16
217#define RT_HASH_LOCK_SZ 2048
218#elif NR_CPUS >= 8
219#define RT_HASH_LOCK_SZ 1024
220#elif NR_CPUS >= 4
221#define RT_HASH_LOCK_SZ 512
222#else 217#else
223#define RT_HASH_LOCK_SZ 256 218# if NR_CPUS >= 32
219# define RT_HASH_LOCK_SZ 4096
220# elif NR_CPUS >= 16
221# define RT_HASH_LOCK_SZ 2048
222# elif NR_CPUS >= 8
223# define RT_HASH_LOCK_SZ 1024
224# elif NR_CPUS >= 4
225# define RT_HASH_LOCK_SZ 512
226# else
227# define RT_HASH_LOCK_SZ 256
228# endif
224#endif 229#endif
225 230
226static spinlock_t *rt_hash_locks; 231static spinlock_t *rt_hash_locks;