Re: 2.6.17-rc5-mm1

Roland Dreier
2006-05-30T19:43:42Z

Building 2.6.17-rc5-mm1, I get this:

net/built-in.o: In function `ip_rt_init':
(.init.text+0xb04): undefined reference to `__you_cannot_kmalloc_that_much'

This seems to be coming from:

rt_hash_locks = kmalloc(sizeof(spinlock_t) * RT_HASH_LOCK_SZ, GFP_KERNEL);

I have CONFIG_NR_CPUS=32, so RT_HASH_LOCK_SZ ends up as 2048. Also, I
have both CONFIG_DEBUG_SPINLOCK=y and CONFIG_PROVE_SPIN_LOCKING=y so
spinlock_t is bloated up quite big:

typedef struct {
raw_spinlock_t raw_lock;
#if defined(CONFIG_PREEMPT) && defined(CONFIG_SMP)
unsigned int break_lock;
#endif
#ifdef CONFIG_DEBUG_SPINLOCK
unsigned int magic, owner_cpu;
void *owner;
#endif
#ifdef CONFIG_PROVE_SPIN_LOCKING
struct lockdep_map dep_map;
#endif
} spinlock_t;

I only have 8 CPUs in the box, so updating my config from the x86_64
defconfig fixes things for me.

No patch because I don't really know how to fix this properly...

- R.