From: Liu Bo <bo.li.liu@oracle.com>
To: linux-btrfs@vger.kernel.org
Cc: Chris Mason <clm@fb.com>, Jan Kara <jack@suse.cz>,
David Sterba <dsterba@suse.cz>
Subject: [PATCH 0/6] btrfs dax IO
Date: Wed, 7 Dec 2016 13:45:04 -0800 [thread overview]
Message-ID: <1481147110-20048-1-git-send-email-bo.li.liu@oracle.com> (raw)
This is a prelimanary patch set to add dax support for btrfs, with
this we can do normal read/write to dax files and can mmap dax files
to userspace so that applications have the ability to access
persistent memory directly.
Please note that currently this is limited to nocow, i.e. all dax
inodes do not have COW behaviour.
COW: no
mutliple device: no
clone/reflink: no
snapshot: no
compression: no
checksum: no
Right now snapshot is disabled while mounting with -odax, but snapshot
can be created without -odax, and writing to a dax file in snapshot
will get -EIO.
Clone/reflink is dealt with as same as snapshot, -EIO will be returned
when writing to shared extents.
This has adopted the latest iomap framework for dax read/write
and dax mmap.
With kernel command option "memmap=", I've had the whole patch set
tested with fstests, except those issues caused by failure of creating
snapshot/reflink and requirement for mutliple device, fstests said OK.
To test it, simply use kernel cmd option "memmap=", mkfs.btrfs and
mount -odax, then you're ready to go run anything upon dax-version
btrfs.
Liu Bo (6):
Btrfs: add mount option for dax
Btrfs: set single device limit for dax usecase
Btrfs: refactor btrfs_file_write_iter
Btrfs: add DAX support for nocow btrfs
Btrfs: add mmap_sem to avoid race between page faults and
truncate/hole_punch
Btrfs: add tracepoint for btrfs_get_blocks_dax_fault
fs/btrfs/Kconfig | 1 +
fs/btrfs/btrfs_inode.h | 7 +
fs/btrfs/ctree.h | 6 +
fs/btrfs/file.c | 342 +++++++++++++++++++-----
fs/btrfs/inode.c | 599 +++++++++++++++++++++++++++++++++++++++++--
fs/btrfs/ioctl.c | 26 +-
fs/btrfs/super.c | 47 +++-
include/trace/events/btrfs.h | 106 ++++++++
8 files changed, 1048 insertions(+), 86 deletions(-)
--
2.5.5
next reply other threads:[~2016-12-07 21:37 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-07 21:45 Liu Bo [this message]
2016-12-07 21:45 ` [PATCH 1/6] Btrfs: add mount option for dax Liu Bo
2016-12-08 2:44 ` kbuild test robot
2016-12-09 4:47 ` Dave Chinner
2016-12-09 18:41 ` Liu Bo
2016-12-09 21:58 ` Dave Chinner
2016-12-07 21:45 ` [PATCH 2/6] Btrfs: set single device limit for dax usecase Liu Bo
2016-12-08 13:35 ` David Sterba
2016-12-08 15:19 ` Liu Bo
2016-12-07 21:45 ` [PATCH 3/6] Btrfs: refactor btrfs_file_write_iter Liu Bo
2016-12-08 0:44 ` kbuild test robot
2016-12-07 21:45 ` [PATCH 4/6] Btrfs: add DAX support for nocow btrfs Liu Bo
2016-12-07 22:15 ` Chris Mason
2016-12-07 22:51 ` Liu Bo
2016-12-08 10:47 ` Jan Kara
2016-12-08 16:45 ` Liu Bo
2016-12-09 12:31 ` Jan Kara
2016-12-09 18:38 ` Liu Bo
2016-12-08 1:16 ` kbuild test robot
2016-12-08 2:19 ` Janos Toth F.
2016-12-08 2:30 ` kbuild test robot
2016-12-09 5:13 ` Dave Chinner
2016-12-09 14:23 ` Chris Mason
2016-12-07 21:45 ` [PATCH 5/6] Btrfs: add mmap_sem to avoid race between page faults and truncate/hole_punch Liu Bo
2016-12-07 21:45 ` [PATCH 6/6] Btrfs: add tracepoint for btrfs_get_blocks_dax_fault Liu Bo
[not found] <trinity-f6bd31da-24aa-4876-bde0-fe5b26b1af92-1481179495753@3capp-mailcom-bs01>
2016-12-08 6:48 ` [PATCH 0/6] btrfs dax IO Xin Zhou
2016-12-08 16:53 ` Liu Bo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1481147110-20048-1-git-send-email-bo.li.liu@oracle.com \
--to=bo.li.liu@oracle.com \
--cc=clm@fb.com \
--cc=dsterba@suse.cz \
--cc=jack@suse.cz \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).