A quick observation from dmesg after placing printks in "net/ipv4/udp.c" for MIPS-malta CONFIG_BASE_SMALL : 0 table->mask : 127 UDP_HTABLE_SIZE_MIN : 256 dmesg: .... ... TCP: Hash tables configured (established 8192 bind 8192) TCP reno registered CONFIG_BASE_SMALL : 0 UDP hash table entries: 128 (order: 0, 4096 bytes) table->mask, UDP_HTABLE_SIZE_MIN : 127 256 CONFIG_BASE_SMALL : 0 UDP-Lite hash table entries: 128 (order: 0, 4096 bytes) table->mask, UDP_HTABLE_SIZE_MIN : 127 256 NET: Registered protocol family 1 .... .... printk(s) are placed in udp.c as listed below: diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 588f47a..ca7f6c6 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -2162,7 +2162,7 @@ __setup("uhash_entries=", set_uhash_entries); void __init udp_table_init(struct udp_table *table, const char *name) { unsigned int i; - + printk("CONFIG_BASE_SMALL : %d \n", CONFIG_BASE_SMALL); if (!CONFIG_BASE_SMALL) table->hash = alloc_large_system_hash(name, 2 * sizeof(struct udp_hslot), @@ -2175,6 +2175,8 @@ void __init udp_table_init(struct udp_table *table, const char *name) /* * Make sure hash table has the minimum size */ + printk("table->mask, UDP_HTABLE_SIZE_MIN : %d %d \n",table->mask,UDP_HTABLE_SIZE_MIN); + if (CONFIG_BASE_SMALL || table->mask < UDP_HTABLE_SIZE_MIN - 1) { table->hash = kmalloc(UDP_HTABLE_SIZE_MIN * 2 * sizeof(struct udp_hslot), GFP_KERNEL); ~ Best Regards, Maxin