From: Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> Date: Mon, 23 Feb 2015 15:07:20 -0800 > Also 'count of pending inserts' is going to be very small and > meaningless, since it will count the number of threads that > are sleeping on insert and not very useful to predict future > expansions. Good point. A way around this would be to allow batching. So netfilter would do something like: set->ops->batch_insert_start(); nla_for_each_nested(attr, nla[NFTA_SET_ELEM_LIST_ELEMENTS], rem) { err = nft_add_set_elem(&ctx, set, attr); if (err < 0) break; set->nelems++; } set->ops->batch_insert_end(); And batch_insert_start and batch_insert_end would point to something that calls new routines rhashtable_batch_insert_start() and rhashtable_batch_insert_end(). Inside of this sequence, rhashtable_insert() calls queue to a list if a table grow is in progress. The pending list is processed by both rhashtable_batch_insert_end() and table grow completion. -- 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