[Devel] Re: [PATCH] [NETNS49] support for per/namespace routing cache cleanup
Denis V. Lunev
den at sw.ru
Thu Oct 18 02:54:51 PDT 2007
Benjamin Thery wrote:
> Denis V. Lunev wrote:
>> Daniel Lezcano wrote:
>>> Oh, by the way, I forgot something important you spotted with the list
>>> protected by the mutex.
>>>
>>> When looking at ipv6/fib_hash.c with Benjamin, we need to browse the
>>> network namespaces list for the garbage collecting, but we are in an
>>> interrupt handler, so I can not use rtnl_lock.
>> where exactly....
>
> Actually, it is in net/ipv6/ip6_fib.c, in fib6_clean_all().
>
> fib6_clean_all() is called by fib6_run_gc() handler of the
> ip6_fib_timer.
> If we don't want to have one such timer per net namespace, in
> fib6_clean_all() we have to go through all net to clean their own
> fib_table_hash (using for_each_net() protected by rtnl_lock).
The locking in mainstream is different with NETNS49.
I have proposed to add a dev_base_lock to protect namespace list for
atomic context to be in sync with rtnl usage.
May be we should introduce an additional one. I also do not see other
way for that place. May be you can copy my approach with generations for
IPv6 code. I'll send a new version in a minute.
Regards,
Den
More information about the Devel
mailing list