Messages in this thread | | | Date | Wed, 08 Jul 2015 18:01:29 +0930 | From | Arthur Marsh <> | Subject | Re: lock-up with module: Optimize __module_address() using a latched RB-tree |
| |
Peter Zijlstra wrote on 08/07/15 07:41: > On Tue, Jul 07, 2015 at 11:56:20PM +0200, Peter Zijlstra wrote:
> Could you try the below? It appears there was a spot freeing modules > that forgot to take them out of the tree. > > If that fails, try and disable CONFIG_MODULE_UNLOAD.
I tried the patch below, re-built and installed and booted the kernel and saw:
http://www.users.on.net/~arthur.marsh/20150708471.jpg http://www.users.on.net/~arthur.marsh/20150708472.jpg
I'm now rebuilding the kernel with CONFIG_MODULE_UNLOAD disabled.
Arthur.
> > --- > kernel/module.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/kernel/module.c b/kernel/module.c > index 3e0e19763d24..4d2b82e610e2 100644 > --- a/kernel/module.c > +++ b/kernel/module.c > @@ -3557,6 +3557,7 @@ static int load_module(struct load_info *info, const char __user *uargs, > mutex_lock(&module_mutex); > /* Unlink carefully: kallsyms could be walking list. */ > list_del_rcu(&mod->list); > + mod_tree_remove(mod); > wake_up_all(&module_wq); > /* Wait for RCU-sched synchronizing before releasing mod->list. */ > synchronize_sched(); >
| |