Re: [RFC, PATCH, RESEND] fs: push rcu_barrier() from deactivate_locked_super() to filesystems
- Subject: Re: [RFC, PATCH, RESEND] fs: push rcu_barrier() from deactivate_locked_super() to filesystems
- From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 8 Jun 2012 15:02:53 -0700
- Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>, Boaz Harrosh <bharrosh@xxxxxxxxxxx>, Tao Ma <boyu.mt@xxxxxxxxxx>, Nick Piggin <npiggin@xxxxxxxxx>, "Dmitry V. Levin" <ldv@xxxxxxxxxxxx>, v9fs-developer@xxxxxxxxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, linux-afs@xxxxxxxxxxxxxxxxxxx, linux-btrfs@xxxxxxxxxxxxxxx, ceph-devel@xxxxxxxxxxxxxxx, linux-cifs@xxxxxxxxxxxxxxx, samba-technical@xxxxxxxxxxxxxxx, codalist@xxxxxxxxxxxxxxxxxxxxxxxx, ecryptfs@xxxxxxxxxxxxxxx, osd-dev@xxxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, fuse-devel@xxxxxxxxxxxxxxxxxxxxx, linux-mtd@xxxxxxxxxxxxxxxxxxx, jfs-discussion@xxxxxxxxxxxxxxxxxxxxx, logfs@xxxxxxxxx, linux-nfs@xxxxxxxxxxxxxxx, linux-nilfs@xxxxxxxxxxxxxxx, linux-ntfs-dev@xxxxxxxxxxxxxxxxxxxxx, ocfs2-devel@xxxxxxxxxxxxxx, reiserfs-devel@xxxxxxxxxxxxxxx
- In-reply-to: <1339191663-17693-1-git-send-email-kirill.shutemov@linux.intel.com>
- References: <1339191663-17693-1-git-send-email-kirill.shutemov@linux.intel.com>
On Sat, 9 Jun 2012 00:41:03 +0300
"Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx> 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-nilfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux Filesystem; Devel]
[Linux CIFS]
[Linux USB Devel]
[Video for Linux]
[Linux Audio Users]
[Photo]
[Yosemite News]
[Yosemite Photos]
[Free Online Dating]
[Linux Kernel]
[Linux SCSI]
[XFree86]