[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20120608150253.e42464a6.akpm@linux-foundation.org>
Date: Fri, 8 Jun 2012 15:02:53 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: "Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>
Cc: Alexander Viro <viro@...iv.linux.org.uk>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Boaz Harrosh <bharrosh@...asas.com>,
Tao Ma <boyu.mt@...bao.com>, Nick Piggin <npiggin@...nel.dk>,
"Dmitry V. Levin" <ldv@...linux.org>,
v9fs-developer@...ts.sourceforge.net, linux-kernel@...r.kernel.org,
linux-fsdevel@...r.kernel.org, linux-afs@...ts.infradead.org,
linux-btrfs@...r.kernel.org, ceph-devel@...r.kernel.org,
linux-cifs@...r.kernel.org, samba-technical@...ts.samba.org,
codalist@...EMANN.coda.cs.cmu.edu, ecryptfs@...r.kernel.org,
osd-dev@...n-osd.org, linux-ext4@...r.kernel.org,
fuse-devel@...ts.sourceforge.net, linux-mtd@...ts.infradead.org,
jfs-discussion@...ts.sourceforge.net, logfs@...fs.org,
linux-nfs@...r.kernel.org, linux-nilfs@...r.kernel.org,
linux-ntfs-dev@...ts.sourceforge.net, ocfs2-devel@....oracle.com,
reiserfs-devel@...r.kernel.org
Subject: Re: [RFC, PATCH, RESEND] fs: push rcu_barrier() from
deactivate_locked_super() to filesystems
On Sat, 9 Jun 2012 00:41:03 +0300
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com> wrote:
> 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.
What an unpleasant patch. Is final-process-exiting-ipc-namespace a
sufficiently high-frequency operation to justify the change?
I don't really understand what's going on here. Are you saying that
there is some filesystem against which we run deactivate_locked_super()
during exit_group(), and that this filesystem doesn't use rcu-freeing
of inodes? The description needs this level of detail, please.
The implementation would be less unpleasant if we could do the
rcu_barrier() in kmem_cache_destroy(). I can't see a way of doing that
without adding a dedicated slab flag, which would require editing all
the filesystems anyway.
(kmem_cache_destroy() already has an rcu_barrier(). Can we do away
with the private rcu games in the vfs and switch to
SLAB_DESTROY_BY_RCU?)
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists