Re: [PATCH 6/8] netpoll: Allow netpoll_setup/cleanup recursion

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Andrew Morton
Date: Thursday, June 24, 2010 - 6:21 pm

On Fri, 11 Jun 2010 12:12:48 +1000
Herbert Xu <herbert@gondor.hengli.com.au> wrote:


And there it is, an unbalanced rtnl_unlock().

This stupid little thing took me over a day's work to find - it's just
been awful.

The user-visible symptom was that a bug in the netpoll code causes the
machine to hang after loading ipv6 (!), because
addrconf_fixup_forwarding()'s rtnl_trylock() kept on failing, and the
restart_syscall() kept on getting restarted, so an initscripts procfs
write just kept banging its head against the excessively-unlocked
mutex.

The mutex code handles an excessively-unlocked mutex (mutex.count==2)
really badly.  Some API functions say "its locked", others say "it
isn't", etc.

Maybe it's better with mutex debugging enabled - didn't try that. 
Things get pretty user-unfriendly when there's a bug within the
netconsole code itself.

Enabling lockdep simply made the bug cure itself - I suspect the mutex
code's handling of mutexes is different if lockdep is enabled.  That
would be pretty bad behaviour from the lockdep code.

I just removed the rtnl_unlock() - I couldn't see much in there which
needed rtnl_locking..

Dave, the fixup should be folded into the original patch please -
otherwise we'll have a machine-hangs-up bisection hole which spans two
weeks work of commits.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[0/8] netpoll/bridge fixes, Herbert Xu, (Thu Jun 10, 5:40 am)
[PATCH 3/7] netpoll: Fix RCU usage, Herbert Xu, (Thu Jun 10, 5:42 am)
[PATCH 5/7] netpoll: Add ndo_netpoll_setup, Herbert Xu, (Thu Jun 10, 5:42 am)
[PATCH 7/7] bridge: Fix netpoll support, Herbert Xu, (Thu Jun 10, 5:42 am)
Re: [0/8] netpoll/bridge fixes, Stephen Hemminger, (Thu Jun 10, 7:49 am)
Re: [0/8] netpoll/bridge fixes, Herbert Xu, (Thu Jun 10, 2:56 pm)
Re: [0/8] netpoll/bridge fixes, Stephen Hemminger, (Thu Jun 10, 2:59 pm)
Re: [0/8] netpoll/bridge fixes, Herbert Xu, (Thu Jun 10, 3:48 pm)
Re: [0/8] netpoll/bridge fixes, Herbert Xu, (Thu Jun 10, 7:11 pm)
[PATCH 3/8] netpoll: Fix RCU usage, Herbert Xu, (Thu Jun 10, 7:12 pm)
[PATCH 5/8] netpoll: Add ndo_netpoll_setup, Herbert Xu, (Thu Jun 10, 7:12 pm)
[PATCH 7/8] netpoll: Add netpoll_tx_running, Herbert Xu, (Thu Jun 10, 7:12 pm)
[PATCH 8/8] bridge: Fix netpoll support, Herbert Xu, (Thu Jun 10, 7:12 pm)
fired a bug report on bugzilla.redhat.com, Qianfeng Zhang, (Thu Jun 10, 8:08 pm)
Re: [0/8] netpoll/bridge fixes, Matt Mackall, (Fri Jun 11, 1:03 pm)
Re: [PATCH 3/8] netpoll: Fix RCU usage, Paul E. McKenney, (Fri Jun 11, 4:10 pm)
Re: [0/8] netpoll/bridge fixes, Cong Wang, (Tue Jun 15, 3:17 am)
Re: [PATCH 8/8] bridge: Fix netpoll support, Cong Wang, (Tue Jun 15, 3:28 am)
Re: [0/8] netpoll/bridge fixes, David Miller, (Tue Jun 15, 11:39 am)
Re: [0/8] netpoll/bridge fixes, Eric Dumazet, (Tue Jun 15, 7:58 pm)
Re: [0/8] netpoll/bridge fixes, Eric Dumazet, (Tue Jun 15, 8:03 pm)
Re: [0/8] netpoll/bridge fixes, Herbert Xu, (Tue Jun 15, 8:33 pm)
Re: [0/8] netpoll/bridge fixes, David Miller, (Tue Jun 15, 9:47 pm)
Re: [0/8] netpoll/bridge fixes, Paul E. McKenney, (Tue Jun 15, 10:08 pm)
Re: [0/8] netpoll/bridge fixes, Eric Dumazet, (Tue Jun 15, 11:16 pm)
Re: [0/8] netpoll/bridge fixes, Eric Dumazet, (Tue Jun 15, 11:21 pm)
Re: [0/8] netpoll/bridge fixes, Paul E. McKenney, (Wed Jun 16, 9:01 am)
Re: [0/8] netpoll/bridge fixes, Paul E. McKenney, (Wed Jun 16, 4:02 pm)
Re: [0/8] netpoll/bridge fixes, Michael S. Tsirkin, (Thu Jun 17, 3:18 am)
Re: [PATCH 8/8] bridge: Fix netpoll support, Herbert Xu, (Thu Jun 17, 3:38 am)
Re: [PATCH 8/8] bridge: Fix netpoll support, Herbert Xu, (Thu Jun 17, 3:55 am)
Re: [PATCH 8/8] bridge: Fix netpoll support, Cong Wang, (Thu Jun 17, 3:57 am)
Re: [0/8] netpoll/bridge fixes, Paul E. McKenney, (Thu Jun 17, 2:26 pm)
Re: [PATCH 8/8] bridge: Fix netpoll support, Cong Wang, (Thu Jun 17, 8:06 pm)
Re: [PATCH 6/8] netpoll: Allow netpoll_setup/cleanup recursion, Andrew Morton, (Thu Jun 24, 6:21 pm)
Re: [0/8] netpoll/bridge fixes, Yanko Kaneti, (Tue Jun 29, 5:53 am)
Re: [0/8] netpoll/bridge fixes, Michael S. Tsirkin, (Mon Jul 19, 3:19 am)
Re: [0/8] netpoll/bridge fixes, Herbert Xu, (Mon Jul 19, 3:53 am)
Re: [0/8] netpoll/bridge fixes, Herbert Xu, (Mon Jul 19, 4:54 am)
Re: [0/8] netpoll/bridge fixes, David Miller, (Mon Jul 19, 9:05 am)
Re: [0/8] netpoll/bridge fixes, Eric Dumazet, (Mon Jul 19, 9:52 am)
Re: [0/8] netpoll/bridge fixes, David Miller, (Mon Jul 19, 1:35 pm)
Re: [0/8] netpoll/bridge fixes, Herbert Xu, (Mon Jul 19, 10:26 pm)
Re: [0/8] netpoll/bridge fixes, David Miller, (Mon Jul 19, 11:28 pm)