[RFC] loop: issue aio with pages

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

 



This patch series adds a kernel interface to fs/aio.c so that kernel code can
issue concurrent asynchronous IO to file systems.  It adds an aio command and
file system methods which specify io memory with pages instead of userspace
addresses.  

This series was written to reduce the current overhead loop imposes by
performing synchronus buffered file system IO from a kernel thread.  These
patches turn loop into a light weight layer that translates bios into iocbs.
knfsd might also want to use these interfaces to perform file IO.

Initial results are encouraging.  Before loop over a block device would cut
random concurrent read performance in half.  With this series reading from loop
performs the same as reading from the underlying device.

But the series is still a prototype.  Only blockdev has the methods implemented
and only for O_DIRECT.  It'll take more work to get pages passed in to file
system methods, through generic code, and down to fs/direct-io.c.

I'm sending this now so that we can decide if we want to pursue this and the
direction it should head in before I get too lost updating file systems to know
how to work with pages. 

Thoughts?

I think my current preference is to follow the current strategy of adding a new
file op method instead of trying to get fancy by changing the types of existing
methods to take some abstract memory specifier.  We'll see if it's feasible to
rework the generic code around iovecs and pages by converting a few file
systems.

- z
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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