That would be great. I implemented a version of 2. also and will test it today. I preallocate the transaction elements before the walk and just allocate more atomically if the nelems changed. This should be enough to preallocate the majority of transaction elems beforehand. Florian Westphal <fw@xxxxxxxxx> wrote: > 1). Leverage what nft_set_pipapo.c is doing and extend > this for all sets that could use the same solution. > The .walk callback for pipapo doesn't need/use rcu read locks, > and could use sleepable allocations. > all set types except rhashtable could follow this. FWIW I'm exploring a change to nft_set_hash to avoid the rcu read lock when calling ->iter() for rhashtable. If it works, this would allow to just replace the GFP_ATOMIC with GFP_KERNEL. ********************************************************************** DISCLAIMER: Privileged and/or Confidential information may be contained in this message. If you are not the addressee of this message, you may not copy, use or deliver this message to anyone. In such event, you should destroy the message and kindly notify the sender by reply e-mail. It is understood that opinions or conclusions that do not relate to the official business of the company are neither given nor endorsed by the company. Thank You.