* [RFD] net list protected by rcu
@ 2007-10-31 14:42 Daniel Lezcano
0 siblings, 0 replies; only message in thread
From: Daniel Lezcano @ 2007-10-31 14:42 UTC (permalink / raw)
To: Eric W. Biederman, Denis V. Lunev, Benjamin Thery
Cc: container >> Linux Containers
Hi,
Benjamin and I, we are currently looking for using IPV6 for the network
namespaces.
There is a special case where we must browse the network namespace list
to check the routes ages at a given time for garbage collecting.
fib6_run_gc
=> fib6_clean_all
In this function we browse the network namespace list with the usual
macro: for_each_net, which should be protected by rtnl_lock.
The function fib6_run_gc is a timer callback, that means we are called
from interrupt handler. But in this case, we can not use rtnl_lock
because it locks a mutex and this is forbidden to do that from an
interrupt handler.
If we put apart the fact there is perhaps a better solution than
browsing the netns list (eg. make a gc timer per namespace), can we
consider to simply use the RCU to lock the network namespace list ?
So we can remove the rtnl_lock calls in the network namespaces and just
use rcu_read_lock for browsing the netns list in the network code. That
will be more flexible, we can use it in interrupt handler, we can nest
with another rcu_read_lock and we don't add more locking contention for
the network.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-10-31 14:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-31 14:42 [RFD] net list protected by rcu Daniel Lezcano
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.