Messages in this thread | | | Date | Thu, 4 Apr 2013 12:12:05 -0500 | From | Nathan Zimmer <> | Subject | Re: [PATCH resend] fs/proc: Move kfree outside pde_unload_lock |
| |
On 04/04/2013 11:11 AM, Al Viro wrote: > On Thu, Apr 04, 2013 at 10:53:39AM -0500, Nathan Zimmer wrote: >> This moves a kfree outside a spinlock to help scaling on larger (512 core) >> systems. This should be some relief until we can move the section to use >> the rcu. > Umm... That'll get wrecked as soon as fixes from #experimental go in; > FWIW, I'd probably make close_pdeo() return pdeo or NULL, depending on > whether we want it freed. With kfree() itself taken to callers. > But there's much bigger fish to fry there - turn use_pde() into > return atomic_inc_unless_negative(&pde->pde_users), unuse_pde() into > if (atomic_dec_return(&pde->pde_users) == BIAS) complete(pde->....) > and make sure entry_rundown() sets completion *before* adding BIAS > to pde_users and waits for it only if the sum was equal to BIAS. > The spinlock is still needed, but only on the "now taking care of > any pdeo that might still be around" side of things - it protects > pdeo list. > > Again, see the last two commits of vfs.git#experimental. I'd certainly > appreciate any extra eyes on that sucker... Ok I am cloning the tree now. It does look like the patches would conflict. I'll run some tests and take a deeper look.
| |