[ovs-dev] [PATCH net-next 2/3] netlink: Convert netlink_lookup() to use RCU protected hash table

Thomas Graf tgraf at suug.ch
Fri Aug 1 15:15:27 UTC 2014

On 08/01/14 at 04:51pm, Nikolay Aleksandrov wrote:
> Hmm, in both the rhashtable_insert() and rhashtable_remove() calls in the
> netlink code you're using GFP_ATOMIC flags but if rhashtable_expand/shring gets
> called even though the allocation will be with GFP_ATOMIC, they still call
> synchronize_rcu() which may block. Now I'm not familiar with the netlink code,
> but I think that in general the flags are useless for GFP_ATOMIC because of the
> calls to synchronize_rcu() in expand/shrink which can block anyway.
> Just a thought, I may be missing something of course.

I don't think you are missing anything. The GFP_ATOMIC flag was
inherited from how the bucket table was allocated prior to the
convertion to the new hash table but you are right, it can't be
needed since the table protection was converted to a mutex.
Using GFP_KERNEL will have a better chance of succeeding.

More information about the dev mailing list