Thread (12 messages) 12 messages, 3 authors, 2014-08-01

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

From: Nikolay Aleksandrov <hidden>
Date: 2014-08-01 15:27:09
Also in: lkml, netfilter-devel

On 08/01/2014 05:15 PM, Thomas Graf wrote:
On 08/01/14 at 04:51pm, Nikolay Aleksandrov wrote:
quoted
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.
Right, I was wondering why it was atomic in the first place and couldn't find a
good reason from the code :-)
But that explains it.

Cheers,
 Nik
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help