From: Thomas Graf <tgraf@xxxxxxx> Date: Tue, 24 Feb 2015 17:50:14 +0000 > On 02/24/15 at 12:09pm, David Miller wrote: >> Thinking about this, if inserts occur during a pending resize, if the >> nelems of the table has exceeded even the grow threshold for the new >> table, it makes no sense to allow these async inserts as they are >> going to make the resize take longer and prolong the pain. > > Let's say we start with an initial table size of 16K (we can make > this system memory depenend) and we grow by 8x. New inserts go > into the new table immediately so as soon as we have 12K entries > we'll grow right to 128K buckets. As we grow above 75K we'll start > growing to 1024K buckets. New entries already go to the 1024K > buckets at this point given that the first grow cycle should be > fast. The 2nd grow cycle would take an est 6 RCU grace periods. > This would also still give us a max of 8K bucket locks which > should be good enough as well. Actually, first of all, let's not start with larger tables. The network namespace folks showed clearly that hash tables are detrimental to per-ns memory costs. So they definitely want us to start with extremely small tables. But once we know something is actively used, sure, increase the table grow rate as a response to demand. So how feasible is it to grow by 4x, 8x, or other powers of two in one resize operation? -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html