From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Denis V. Lunev" Subject: Re: [PATCH] [NETNS49] support for per/namespace routing cache cleanup Date: Thu, 18 Oct 2007 13:54:51 +0400 Message-ID: <47172D6B.6020708@sw.ru> References: <20071017111215.GA29653@iris.sw.ru> <4715F60F.6060304@fr.ibm.com> <4716055D.4010102@sw.ru> <471610E8.8020008@fr.ibm.com> <471617CA.9090901@sw.ru> <471624C0.9020108@fr.ibm.com> <47164CBD.3040107@gmail.com> <471708D8.3080808@bull.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <471708D8.3080808-6ktuUTfB/bM@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Benjamin Thery Cc: Linux Containers , "Denis V. Lunev" , ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org List-Id: containers.vger.kernel.org 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