[RFC, PATCH] fs: push rcu_barrier() from deactivate_locked_super() to filesystems
Linus Torvalds
torvalds at linux-foundation.org
Fri Jun 8 17:43:58 EDT 2012
On Fri, Jun 8, 2012 at 2:28 PM, Kirill A. Shutemov
<kirill.shutemov at linux.intel.com> wrote:
> From: "Kirill A. Shutemov" <kirill.shutemov at linux.intel.com>
>
> There's no reason to call rcu_barrier() on every deactivate_locked_super().
> We only need to make sure that all delayed rcu free inodes are flushed
> before we destroy related cache.
>
> Removing rcu_barrier() from deactivate_locked_super() affects some
> fas paths. E.g. on my machine exit_group() of a last process in IPC
> namespace takes 0.07538s. rcu_barrier() takes 0.05188s of that time.
I think we should just delete it.
kmem_cache_destroy() (at least for SLUB) already has:
if (s->flags & SLAB_DESTROY_BY_RCU)
rcu_barrier();
in it. But I think it's too late - it gets called *after* we do
kmem_cache_close(), and I get the feeling that we should do it before.
Shouldn't that be sufficient? And if other slab allocators don't have
this, we should add it to them too.
Hmm?
Linus
More information about the linux-mtd
mailing list