[PATCHSET RFC[RAP]] fuse: allow servers to use iomap for better file IO performance

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

This series connects fuse (the userspace filesystem layer) to fs-iomap to get
fuse servers out of the business of handling file I/O themselves.  By keeping
the IO path mostly within the kernel, we can dramatically improve the speed of
disk-based filesystems.  This enables us to move all the filesystem metadata
parsing code out of the kernel and into userspace, which means that we can
containerize them for security without losing a lot of performance.

If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.

This has been running on the djcloud for months with no problems.  Enjoy!
Comments and questions are, as always, welcome.

--D

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=fuse-iomap
---
Commits in this patchset:
 * fuse: fix livelock in synchronous file put from fuseblk workers
 * iomap: exit early when iomap_iter is called with zero length
 * fuse: implement the basic iomap mechanisms
 * fuse: add a notification to add new iomap devices
 * fuse: send FUSE_DESTROY to userspace when tearing down an iomap connection
 * fuse: implement basic iomap reporting such as FIEMAP and SEEK_{DATA,HOLE}
 * fuse: implement direct IO with iomap
 * fuse: implement buffered IO with iomap
 * fuse: implement large folios for iomap pagecache files
 * fuse: use an unrestricted backing device with iomap pagecache io
 * fuse: advertise support for iomap
---
 fs/fuse/fuse_i.h          |  135 ++++
 fs/fuse/fuse_trace.h      |  845 ++++++++++++++++++++++++++
 include/uapi/linux/fuse.h |  138 ++++
 fs/fuse/Kconfig           |   23 +
 fs/fuse/Makefile          |    1 
 fs/fuse/dev.c             |   26 +
 fs/fuse/dir.c             |   14 
 fs/fuse/file.c            |   85 ++-
 fs/fuse/file_iomap.c      | 1445 +++++++++++++++++++++++++++++++++++++++++++++
 fs/fuse/inode.c           |   23 +
 fs/iomap/iter.c           |    5 
 11 files changed, 2730 insertions(+), 10 deletions(-)
 create mode 100644 fs/fuse/file_iomap.c





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux